_INetSmtpMail
--------------------------------------------------------------------------------
发送邮件而不使用外部邮件程序.
#include <INet.au3>
_INetSmtpMail ( $s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress [,$s_Subject [,$as_Body [,$s_helo, [,$s_first [,$b_trace]]]]])
参数
$s_SmtpServer 邮件发送的SMTP服务器地址或者是数字IP地址.为防止垃圾信息,大多数ISPs要求服务器这样设置.例如"smtp.ispdomain.com", "mail.ispdomain.com" 或 "192.168.1.1"
$s_FromName 你希望显示的发送人名称.例如"Bob Smith"
$s_FromAddress 你希望显示的发送的邮件地址.例如"bob.smith@mydomain.com".
$s_ToAddress 邮件发送地址.例如"jane.brown@yourdomain.com"
$s_Subject [可选] 邮件主题.
$as_Body [可选] 邮件内容作为一个单一的字符串数组.数组中每个值在邮件里面会被以@CRLF结束.
$s_helo [可选] SMTP服务器链接的标志符(通常默认是@ComputerName).如果SMTP服务器需要一个"EHLO"字串,那就设置字符串为"EHLO " & @ComputerName.
$s_first [可选] 在helo之前发送给SMTP服务器的字符串(通常默认是{SPACE}).如果不发送任何对象这个参数必须设置为-1,某些SMTP服务器需要.
$b_trace [可选] 在一个窗口里面跟踪对话过程
返回值
成功 - 返回 1
失败 - 返回 0 并且设置:
@ERROR = 1 - 无效参数
@ERROR = 2 - 无法启动TCP
@ERROR = 3 - 无法解析IP
@ERROR = 4 - 无法创建socket
@ERROR = 5x - 无法打开SMTP会话. x显示STMP服务器处理的最后命令的索引数.
@ERROR = 50x - 无法发送内容.X显示$as_Body的行号(第一行是 0).
@ERROR = 5000 - 无法关闭SMTP会话
备注
这个函数直接通过SMTP服务器发送邮件而不用第三方邮件工具.需要AutoIt3 v 3.1.1.97 或者更高版本.
相关
_INetMail
示例
#include <INet.au3>
$s_SmtpServer = "mysmtpserver.com.au"
$s_FromName = "My Name"
$s_FromAddress = "From eMail Address"
$s_ToAddress = "To eMail Address"
$s_Subject = "My Test UDF"
Dim $as_Body[2]
$as_Body[0] = "Testing the new email udf"
$as_Body[1] = "Second Line"
$Response = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body)
$err = @error
If $Response = 1 Then
MsgBox(0, "Success!", "Mail sent")
Else
MsgBox(0, "Error!", "Mail failed with error code " & $err)
EndIf |