你好:

     感谢你访问我的 Blog ,本博客只提供博主的技术经验分享,你可以在此做简单的留言和评论,我会抽空回复你;若是要深入交流探讨,请联系QQ:47853253或者加QQ群:12012081


 

【AU3】通过SMTP发邮件脚本【亲测可行】

 #Include <file.au3>

;这里填写smtp服务器、端口,收件邮箱,发件邮箱以及发件邮箱的登录验证帐户密码等。
;#include "SmtpMailer.au3" ;加载SmtpMailer.au3。
$s_SmtpServer = "smtp.163.com" ;smtp服务器,这里我使用的是163的SMTP服务器。
$s_FromName = "双收费客户" ;邮件发送人名称,随便备注。
$s_FromAddress = "lq3447@163.com" ;邮件发送者地址address【完整邮箱地址】。
$s_ToAddress = "47853253@qq.com" ;邮件发送给谁【完整邮箱地址】。
$s_Subject = "邮件标题" ;邮件标题。
$as_Body = "邮件正文" ;邮件正文。
$s_AttachFiles = "" ;附件地址,大多情况下是空。
$s_CcAddress = "" ;抄送地址,大多情况下是空。
$s_BccAddress = "" ;密件抄送地址,大多情况下是空。
$s_Username = "lq3447" ;邮箱登录用户名(不包括@和@后面的信息)。
$s_Password = "********";邮箱登录密码。
$IPPort = 25 ;发送端口,如果是SSL的话端口是465。
$ssl = 0 ;安全连接(0代表不使用安全连接,而1代表使用,163邮箱可以不用,gmail邮箱是需要使用的。)。
sendmail();判定【函数调用】。
 
Func sendmail()
        Global $oMyRet[2]
        Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
        $rc = _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_AttachFiles, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password, $IPPort, $ssl)
        If @error Then
                MsgBox(0, "邮件发送失败", "错误代号:" & @error & " 描述:" & $rc);可以吧这句删除做成静默。
        EndIf
EndFunc   ;==>sendmail
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
Global $oMyRet[2]
 
Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "",$IPPort=25, $ssl=0)
    $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])
            If FileExists($S_Files2Attach[$x]) Then
                $objEmail.AddAttachment ($S_Files2Attach[$x])
            Else
                $i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
                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
    $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
; Sent the Message
    $objEmail.Send
    if @error then
        SetError(2)
        return $oMyRet[1]
    EndIf
EndFunc ;==>_INetSmtpMailCom
 
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 
 
 


[本日志由 lq3447 于 2017-05-23 02:16 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
评论: 0 | 引用: 0 | 查看次数: 117
发表评论
你没有权限发表留言!