Smtp Mailer That Supports Html And Attachments.

;;##################################; Include;###################################Include<file.au3>;##################################; Variables;##################################$SmtpServer="MailServer"; address for the smtp-server to use - REQUIRED$FromName="Name"; name from who the email was sent$FromAddress="your@Email.Address.com"; address from where the mail should come$ToAddress="your@Email.Address.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="******"; username for the account used from where the mail gets sent - REQUIRED$Password="********"; password for the account used from where the mail gets sent - REQUIRED$IPPort=25; port used for sending the mail$ssl=0; 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@errorThenMsgBox(0,"Error sending message","Error code:"&@error&" Description:"&$rc)EndIf;; The UDFFunc_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_ToAddressLocal$i_Error=0Local$i_Error_desciption=""If$s_CcAddress<>""Then$objEmail.Cc=$s_CcAddressIf$s_BccAddress<>""Then$objEmail.Bcc=$s_BccAddress$objEmail.Subject=$s_SubjectIfStringInStr($as_Body,"<")AndStringInStr($as_Body,">")Then$objEmail.HTMLBody=$as_BodyElse$objEmail.Textbody=$as_Body&@CRLFEndIfIf$s_AttachFiles<>""ThenLocal$S_Files2Attach=StringSplit($s_AttachFiles,";")For$x=1To$S_Files2Attach[0]$S_Files2Attach[$x]=_PathFull($S_Files2Attach[$x]);~ ConsoleWrite('@@ Debug : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug ConsoleIfFileExists($S_Files2Attach[$x])ThenConsoleWrite('+> File attachment added: '&$S_Files2Attach[$x]&@LF)$objEmail.AddAttachment($S_Files2Attach[$x])ElseConsoleWrite('!> File not found to attach: '&$S_Files2Attach[$x]&@LF)SetError(1)Return0EndIfNextEndIf$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")=$s_SmtpServerIfNumber($IPPort)=0then$IPPort=25$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=$IPPort;Authenticated SMTPIf$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_PasswordEndIfIf$sslThen$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl")=TrueEndIf;Update settings$objEmail.Configuration.Fields.Update; Set Email ImportanceSwitch$s_ImportanceCase"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.SendIf@errorThenSetError(2)Return$oMyRet[1]EndIf$objEmail=""EndFunc;==>_INetSmtpMailCom;;; Com Error HandlerFunc 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 returnsReturnEndFunc;==>MyErrFunc

Edit: Fixed Bcc ...
Edit: Added support for different port and SLL which are used by GMail (Port 465)
Edit: Added Importance support (10/2008)

i use ypops and enter my server as 127.0.0.1 (localhost) this usually works in my other programs. I get a failure to login error after AUTH Login is sent to me. Any ideas? Ypops uses localhost to access yahoo mail accts.

The error reads: error code 2: message could not be sent to the smtp server. the transport error code was 0x80040217

i use ypops and enter my server as 127.0.0.1 (localhost) this usually works in my other programs. I get a failure to login error after AUTH Login is sent to me. Any ideas? Ypops uses localhost to access yahoo mail accts.

The error reads: error code 2: message could not be sent to the smtp server. the transport error code was 0x80040217

thanks.

I don't know if a proxy program will work with this COM object... you will have to do some reseach on it..

Com error:80020009
Error sending message, error code:2 Description:The message could not be sent to the SMTP server. The transport error code was 0x800ccc61. The server response was 560 See http://pobox.com/~djb/docs/smtplf.html.