Jump to content



Photo

Smtp Mailer That Supports Html And Attachments.


521 replies to this topic

#421 Raffav

Raffav

    Seeker

  • Active Members
  • 26 posts

Posted 24 May 2012 - 11:19 PM

Hello, sorry for the noob question but how i used ?
i just want to send email but need authentication

never mind found

but how i break line on body msg?
i need to do in this way $body = "blabkfjhdkfjhaskfjhkjhkasdlfkjh" & @CRLF & "blabkfjhdkfjhaskfjhkjhkasdlfkjh" & @CRLF & "blabkfjhdkfjhaskfjhkjhkasdlfkjh" .....

Edited by Raffav, 24 May 2012 - 11:56 PM.








#422 water

water

    ?

  • MVPs
  • 10,695 posts

Posted 25 May 2012 - 06:42 AM

but how i break line on body msg?
i need to do in this way $body = "blabkfjhdkfjhaskfjhkjhkasdlfkjh" & @CRLF & "blabkfjhdkfjhaskfjhkjhkasdlfkjh" & @CRLF & "blabkfjhdkfjhaskfjhkjhkasdlfkjh" .....

As always: It depends.
If the body contains "<" and ">" characters then it is treated as HTML. In this case you have to use "<br>" (break) or "<p>" (paragraph) for a line break.
Otherwise you add "@CRLF" for a line break.

UDFs:

Active Directory (2012-10-12 - Version 1.3.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

OutlookEX (2012-10-07 - Version 0.9.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

ExcelChart (2013-01-21 - Version 0.3.1.1 released) - Download - General Help & Support - Example Scripts

WordEX (2012-12-29 - Version 1.3 released) - Download

ExcelEX (2013-05-11 - Alpha 4 released) - Download


#423 Raffav

Raffav

    Seeker

  • Active Members
  • 26 posts

Posted 25 May 2012 - 01:01 PM

As always: It depends.
If the body contains "<" and ">" characters then it is treated as HTML. In this case you have to use "<br>" (break) or "<p>" (paragraph) for a line break.
Otherwise you add "@CRLF" for a line break.


Thanks but i cant figured out how to use in HTML mode

#424 water

water

    ?

  • MVPs
  • 10,695 posts

Posted 25 May 2012 - 01:05 PM

The text you posted in your OP is not HTML text. HTML text looks something like:
<HTML> <BODY> Test in <B>bold</B>. </BODY> </HTML>

If it's native text you should stick with @CRLF.

UDFs:

Active Directory (2012-10-12 - Version 1.3.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

OutlookEX (2012-10-07 - Version 0.9.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

ExcelChart (2013-01-21 - Version 0.3.1.1 released) - Download - General Help & Support - Example Scripts

WordEX (2012-12-29 - Version 1.3 released) - Download

ExcelEX (2013-05-11 - Alpha 4 released) - Download


#425 Raffav

Raffav

    Seeker

  • Active Members
  • 26 posts

Posted 25 May 2012 - 01:51 PM

The text you posted in your OP is not HTML text. HTML text looks something like:

<HTML> <BODY> Test in <B>bold</B>. </BODY> </HTML>

If it's native text you should stick with @CRLF.

Thanks i alredy have have foundout
I know that the text i posted is not HTML, i didn't know that HTML was possible or how to used KKKKK

Last question,

yes i am very noob ;)
how i can put this in my script or call it,

i only need the email "sender" don't need file attachments or error report.

thanks again

Edited by Raffav, 25 May 2012 - 01:51 PM.


#426 water

water

    ?

  • MVPs
  • 10,695 posts

Posted 25 May 2012 - 01:55 PM

Go to the first post and copy the code starting with line "; The UDF" to your script.
Then call function _INetSmtpMailCom with the parameters you have (sender, recipient, body ...).

UDFs:

Active Directory (2012-10-12 - Version 1.3.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

OutlookEX (2012-10-07 - Version 0.9.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

ExcelChart (2013-01-21 - Version 0.3.1.1 released) - Download - General Help & Support - Example Scripts

WordEX (2012-12-29 - Version 1.3 released) - Download

ExcelEX (2013-05-11 - Alpha 4 released) - Download


#427 Raffav

Raffav

    Seeker

  • Active Members
  • 26 posts

Posted 25 May 2012 - 02:14 PM

Go to the first post and copy the code starting with line "; The UDF" to your script.
Then call function _INetSmtpMailCom with the parameters you have (sender, recipient, body ...).

thanks

it will something like this !
Plain Text         
_INetSmtpMailCom("mail.mail.com", "tester", "test@mail.com", "test2@mail.com" , " somesubjects", "body msg" ,"" ,"" ,"" ,"normal", "username" , "password") ; The UDF Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0)     Local $objEmail = ObjCreate("CDO.Message")     $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'     $objEmail.To = $s_ToAddress     Local $i_Error = 0     Local $i_Error_desciption = ""     If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress     If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress     $objEmail.Subject = $s_Subject     If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then         $objEmail.HTMLBody = $as_Body     Else         $objEmail.Textbody = $as_Body & @CRLF     EndIf     If $s_AttachFiles <> "" Then         Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")         For $x = 1 To $S_Files2Attach[0]             $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x]) ;~        ConsoleWrite('@@ Debug : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console             If FileExists($S_Files2Attach[$x]) Then                 ConsoleWrite('+> File attachment added: ' & $S_Files2Attach[$x] & @LF)                 $objEmail.AddAttachment($S_Files2Attach[$x])             Else                 ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)                 SetError(1)                 Return 0             EndIf         Next     EndIf     $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2     $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer     If Number($IPPort) = 0 then $IPPort = 25     $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort     ;Authenticated SMTP     If $s_Username <> "" Then         $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1         $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username         $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password     EndIf     If $ssl Then         $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True     EndIf     ;Update settings     $objEmail.Configuration.Fields.Update     ; Set Email Importance     Switch $s_Importance         Case "High"             $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High"         Case "Normal"             $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal"         Case "Low"             $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low"     EndSwitch     $objEmail.Fields.Update     ; Sent the Message     $objEmail.Send     If @error Then         SetError(2)         Return $oMyRet[1]     EndIf     $objEmail="" EndFunc   ;==>_INetSmtpMailCom

Edited by Raffav, 25 May 2012 - 02:14 PM.


#428 water

water

    ?

  • MVPs
  • 10,695 posts

Posted 25 May 2012 - 02:29 PM

Looks good.

UDFs:

Active Directory (2012-10-12 - Version 1.3.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

OutlookEX (2012-10-07 - Version 0.9.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

ExcelChart (2013-01-21 - Version 0.3.1.1 released) - Download - General Help & Support - Example Scripts

WordEX (2012-12-29 - Version 1.3 released) - Download

ExcelEX (2013-05-11 - Alpha 4 released) - Download


#429 Raffav

Raffav

    Seeker

  • Active Members
  • 26 posts

Posted 25 May 2012 - 03:32 PM

Looks good.

Working but
i was having error
on
"
ERROR: _PathFull(): undefined function.
$S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"
when using like the above post example , so i need to ; comments all part that make reference for "AttachFiles" from some reason the If $s_AttachFiles <> "" Then is not working so i comment all if statements and now works





Thanks

Edited by Raffav, 25 May 2012 - 03:49 PM.


#430 water

water

    ?

  • MVPs
  • 10,695 posts

Posted 26 May 2012 - 07:25 AM

No need to place comments before the _FullPath statemetns. Function _FullPath is part of the File UDF. If you place line
#include <File.au3>
at the top of your script the "problem" is solved.

UDFs:

Active Directory (2012-10-12 - Version 1.3.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

OutlookEX (2012-10-07 - Version 0.9.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

ExcelChart (2013-01-21 - Version 0.3.1.1 released) - Download - General Help & Support - Example Scripts

WordEX (2012-12-29 - Version 1.3 released) - Download

ExcelEX (2013-05-11 - Alpha 4 released) - Download


#431 Orlinb

Orlinb

    Seeker

  • Normal Members
  • 1 posts

Posted 09 June 2012 - 12:38 PM

How to make it loop? With While and Wend and Do gives error. I want to make it to send mail every hour or something like that, is it possible?

#432 Alexandre

Alexandre

    Seeker

  • Active Members
  • 45 posts

Posted 27 June 2012 - 03:44 PM

Is there any way that i declare a file with a list of files and send um email for each file?

Thanks

#433 water

water

    ?

  • MVPs
  • 10,695 posts

Posted 27 June 2012 - 04:12 PM

Yes: Code it yourself.
Read the file using _FileReadtoArray then loop through the array and send a mail for each entry.

UDFs:

Active Directory (2012-10-12 - Version 1.3.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

OutlookEX (2012-10-07 - Version 0.9.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

ExcelChart (2013-01-21 - Version 0.3.1.1 released) - Download - General Help & Support - Example Scripts

WordEX (2012-12-29 - Version 1.3 released) - Download

ExcelEX (2013-05-11 - Alpha 4 released) - Download


#434 Alexandre

Alexandre

    Seeker

  • Active Members
  • 45 posts

Posted 28 June 2012 - 07:37 AM

Yes: Code it yourself.
Read the file using _FileReadtoArray then loop through the array and send a mail for each entry.


Can you give me the link to that file our share some code with it?

#435 water

water

    ?

  • MVPs
  • 10,695 posts

Posted 28 June 2012 - 07:39 AM

_FileReadtoArray is a function of the File UDF that comes with AutoIt.

UDFs:

Active Directory (2012-10-12 - Version 1.3.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

OutlookEX (2012-10-07 - Version 0.9.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

ExcelChart (2013-01-21 - Version 0.3.1.1 released) - Download - General Help & Support - Example Scripts

WordEX (2012-12-29 - Version 1.3 released) - Download

ExcelEX (2013-05-11 - Alpha 4 released) - Download


#436 Alexandre

Alexandre

    Seeker

  • Active Members
  • 45 posts

Posted 28 June 2012 - 12:56 PM

_FileReadtoArray is a function of the File UDF that comes with AutoIt.


Tank you for your help
I code it my self and it works perfect.
:D

#437 Alexandre

Alexandre

    Seeker

  • Active Members
  • 45 posts

Posted 10 July 2012 - 05:51 PM

How to make it loop? With While and Wend and Do gives error. I want to make it to send mail every hour or something like that, is it possible?

$FileAttach = FileOpen("FileAttach.txt")
$AttachFiles = FileReadLine($FileAttach)



While 1
$AttachFiles = FileReadLine($FileAttach)
If @error = -1 Then ExitLoop
Sleep(5000) ;Wait 5 seconds
Global $oMyRet[2]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $Replyaddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
If @error Then
MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
EndIf
WEnd

Edited by Alexandre, 10 July 2012 - 05:54 PM.


#438 DarkDeveloper

DarkDeveloper

    Seeker

  • Active Members
  • 14 posts

Posted 25 July 2012 - 02:30 PM

***INTRO*** (For entertainment only, "(number)" are references to questions I have below. )
I was having errors getting this script to work. I could get it to work fine on this laptop when the email being sent to was priviledged to recieve outside emails. I saw the http://schemas.microsoft.com/cdo/configuration/sendusing and was talking to my network administrator (who has only used auto it to send mouse clicks and keys) and they thought that the SMTP was relaying a message over the Internet and back to our email server. I did some research on that and couldn't find anything. I put the script .EXE on the terminal computer I need it for to test it and it wouldn't send the email either. Then my network admin thought it might be blocked and showed me what telnet is and a very basic command "telnet (server) 25". I received a signal back so I thought it was working fine. This had me stumped for quite awhile. I did some more research and found that all I needed to send SMTP messages was two terminals and email server. That knocked out the whole relaying theory from earlier. I stumbled upon another useful resource http://praveenbattula.blogspot.com/2009/04/how-to-check-smtp-is-working-or-not.html. This was mindblowing. I thought all I was doing earlier was check to see if I could send and recieve information from the server. (1) Using telnet I was able to send an email successfully when the script would not work. My feeling at this point is the terminal is not always accessing the server so it errors and fails to send message. I think a loop with some error checking in the original script might fix it.

I started reading the code line by line to see what it was doing and right at the beginning I saw ObjCreate("CDO.Message"). This made no sense to me so I started looking it up on Google just to find this topic as the top hit. So I did a search on CDO.Message and couldn't find anything useful either. I looked up ObjCreate in the AutoIt Help and there I found Obj/COM reference. I have never worked with COMs before so after doing some research on them I found out that is was access to build in libraries. (2)

After a little more research I learned that cdosys.dll was the library for CDO. (3) Being a programming student, I am surprised that these kind of things have not been mentioned before. This was my eventful morning. Always nice to learn new things.

1. Are these just basic telnet commands and, if they are specific to servers/terminals, where would I look to start learning them?
http://praveenbattula.blogspot.com/2009/04/how-to-check-smtp-is-working-or-not.html

2. Does the code:
Local $objEmail = ObjCreate("CDO.Message")
$objEmail.Configuration.Fields.Item
read like CDO.Message.Configuration.Fields.Item()?

3. Can I view a list of library functions and how they work like Configuration.Fields.Item in the .dll file with a .dll reader? If not, are there any recommended websites to use where I can libraries, their functions (not just cdosys.dll) and how they operate?

#439 Aapjuh

Aapjuh

    Seeker

  • Active Members
  • 20 posts

Posted 29 July 2012 - 07:55 PM

Plain Text         
; ;################################## ; Include ;################################## #Include<file.au3> ;################################## ; Variables ;################################## $SmtpServer = "smtp.live.com"            ; address for the smtp-server to use - REQUIRED $FromName = "Name"                   ; name from who the email was sent $FromAddress = "my@live.com" ; address from where the mail should come $ToAddress = "myother@live.com" ; destination address of the email - REQUIRED $Subject = "Userinfo"                ; subject from the email - can be anything you want it to be $Body = ""                           ; the messagebody from the mail - can be left blank but then you get a blank mail $AttachFiles = ""                    ; the file(s) you want to attach seperated with a ; (Semicolon) - leave blank if not needed $CcAddress = "CCadress1@test.com"    ; address for cc - leave blank if not needed $BccAddress = "BCCadress1@test.com"  ; address for bcc - leave blank if not needed $Importance = "Normal"               ; Send message priority: "High", "Normal", "Low" $Username = "my@live.com"                ; username for the account used from where the mail gets sent - REQUIRED $Password = "mypass"                 ; password for the account used from where the mail gets sent - REQUIRED $IPPort = 25                         ; port used for sending the mail $ssl = 1                             ; enables/disables secure socket layer sending - put to 1 if using httpS ;~ $IPPort=465                       ; GMAIL port used for sending the mail ;~ $ssl=1                            ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS ;################################## ; Script ;################################## Global $oMyRet[2] Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") $rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl) If @error Then MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc) EndIf ; ; The UDF Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0) Local $objEmail = ObjCreate("CDO.Message") $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>' $objEmail.To = $s_ToAddress Local $i_Error = 0 Local $i_Error_desciption = "" If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress $objEmail.Subject = $s_Subject If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then      $objEmail.HTMLBody = $as_Body Else      $objEmail.Textbody = $as_Body & @CRLF EndIf If $s_AttachFiles <> "" Then      Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")      For $x = 1 To $S_Files2Attach[0]          $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x]) ;~       ConsoleWrite('@@ Debug : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console          If FileExists($S_Files2Attach[$x]) Then              ConsoleWrite('+> File attachment added: ' & $S_Files2Attach[$x] & @LF)              $objEmail.AddAttachment($S_Files2Attach[$x])          Else              ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)              SetError(1)              Return 0          EndIf      Next EndIf $objEmail.Configuration.Fields.Item ("<a href='http://schemas.microsoft.com/cdo/configuration/sendusing' class='bbc_url' title='External link' rel='nofollow external'>http://schemas.microsoft.com/cdo/configuration/sendusing"</a>) = 2 $objEmail.Configuration.Fields.Item ("<a href='http://schemas.microsoft.com/cdo/configuration/smtpserver' class='bbc_url' title='External link' rel='nofollow external'>http://schemas.microsoft.com/cdo/configuration/smtpserver"</a>) = $s_SmtpServer If Number($IPPort) = 0 then $IPPort = 25 $objEmail.Configuration.Fields.Item ("<a href='http://schemas.microsoft.com/cdo/configuration/smtpserverport' class='bbc_url' title='External link' rel='nofollow external'>http://schemas.microsoft.com/cdo/configuration/smtpserverport"</a>) = $IPPort ;Authenticated SMTP If $s_Username <> "" Then      $objEmail.Configuration.Fields.Item ("<a href='http://schemas.microsoft.com/cdo/configuration/smtpauthenticate' class='bbc_url' title='External link' rel='nofollow external'>http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"</a>) = 1      $objEmail.Configuration.Fields.Item ("<a href='http://schemas.microsoft.com/cdo/configuration/sendusername' class='bbc_url' title='External link' rel='nofollow external'>http://schemas.microsoft.com/cdo/configuration/sendusername"</a>) = $s_Username      $objEmail.Configuration.Fields.Item ("<a href='http://schemas.microsoft.com/cdo/configuration/sendpassword' class='bbc_url' title='External link' rel='nofollow external'>http://schemas.microsoft.com/cdo/configuration/sendpassword"</a>) = $s_Password EndIf If $ssl Then      $objEmail.Configuration.Fields.Item ("<a href='http://schemas.microsoft.com/cdo/configuration/smtpusessl' class='bbc_url' title='External link' rel='nofollow external'>http://schemas.microsoft.com/cdo/configuration/smtpusessl"</a>) = True EndIf ;Update settings $objEmail.Configuration.Fields.Update ; Set Email Importance Switch $s_Importance      Case "High"          $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High"      Case "Normal"          $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal"      Case "Low"          $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low" EndSwitch $objEmail.Fields.Update ; Sent the Message $objEmail.Send If @error Then      SetError(2)      Return $oMyRet[1] EndIf $objEmail="" EndFunc ;==>_INetSmtpMailCom ; ; ; Com Error Handler Func MyErrFunc() $HexNumber = Hex($oMyError.number, 8) $oMyRet[0] = $HexNumber $oMyRet[1] = StringStripWS($oMyError.description, 3) ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF) SetError(1); something to check for when this function returns Return EndFunc ;==>MyErrFunc


im getting the "transport bla bla" error:
""### COM Error ! Number: 80020009 ScriptLine: 92 Description:De transportfunctie kan geen verbinding maken met de server.""

line 92 is this part:
90    $objEmail.Fields.Update 91    ; Sent the Message 92    $objEmail.Send 93    If @error Then 94      SetError(2) 95      Return $oMyRet[1] 96    EndIf 97    $objEmail="" 98 EndFunc   ;==>_INetSmtpMailCom


the script i use is ctrl+c(@popup) from OP with only "$FromAddress" + "$ToAddress" + "$Username" + "$Password" editted
im on, Win7 64bit

Edited by Aapjuh, 29 July 2012 - 08:01 PM.


#440 water

water

    ?

  • MVPs
  • 10,695 posts

Posted 29 July 2012 - 08:00 PM

The "tansport bla bla" message can be found here. In the next post you'll find a few things to check.

UDFs:

Active Directory (2012-10-12 - Version 1.3.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

OutlookEX (2012-10-07 - Version 0.9.0.0 released) - Download - General Help & Support - Example Scripts - Wiki

ExcelChart (2013-01-21 - Version 0.3.1.1 released) - Download - General Help & Support - Example Scripts

WordEX (2012-12-29 - Version 1.3 released) - Download

ExcelEX (2013-05-11 - Alpha 4 released) - Download





2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users