说明:利用SMTP服务器发送邮件,成功返回真,否则返回假。如果有MSG这个参数,则当失败的时候返回失败的具体信息到MSG参数。
定义一:SysSendMail(AHost,ASubject,ATo,AFrom,AText:String;[Var Msg:String]):Boolean;
参数:
AHost:字符串类型,SMTP服务器地址或者别名。如果端口特殊或者需要认证,可在配置文件中设置。
ASubject:字符串类型,邮件标题。
ATo:字符串类型,收件人。
AFrom:字符串类型,发件人。
AText:字符串类型,邮件内容。
MSG:用于接收错误信息的参数,可省略。
定义二:SysSendMail(AHost,ASubject,ATo,AFrom,AText,ACharSet,ABccList,ACCList:String; APriority:Integer;[<AttachmentName1:String;AttachmentContent1:String>[…<AttachmentNameN:String;AttachmentContentN:String>]][Var Msg:String]):Boolean;
参数:
AHost:字符串类型,SMTP服务器地址或者别名。如果端口特殊或者需要认证,可在配置文件中设置。
ASubject:字符串类型,邮件标题。
ATo:字符串类型,收件人。
AFrom:字符串类型,发件人。
AText:字符串类型,邮件内容。
ACharSet:字符串类型,邮件编码类型。
ABccList:字符串类型,密件抄送地址。
ACCList:字符串类型,抄送地址。
APriority:整数类型,邮件优先级。
附件可选参数,AttachmentName和AttachmentContent任意对参数组合。
AttachmentName..:添加的附件在邮件里的文件名称。
AttachmentContent..:添加的附件的内容,如果该内容为字符串类型且存在该文件,则将文件内容作为附件内容。
MSG:用于接收错误信息的参数,可省略。
返回:如果发送成功,则返回1,否则返回0;
范例:
//范例一:
ret:=rdo2 sysSendmail("www.tinysoft.com.cn",
'客户端发邮件测试',
'xulihua@tinysoft.com.cn',
'support@tinysoft.com.cn',
'Tinysoft hello',
msg);
return ret;
//结果:1
//范例二:
ret:=rdo2 sysSendMail("www.tinysoft.com.cn",
'客户端发邮件测试',
'xulihua@tinysoft.com.cn',
'support@tinysoft.com.cn',
'邮件测试:Tinysoft',
'gb2312',
'wuxinxing@tinysoft.com.cn',
'chenjuan@tinysoft.com.cn',
1,
'附件测试',
'D:\\test1\\test.tsl',
msg);
return ret;
//返回:1,发送的附件为 "附件测试.dat"
//范例三:通过QQ邮箱发送邮件。注意,通过QQ邮箱发送邮件,需要使用QQ账户和账户授权码。授权码的获取参照步骤说明进行配置并获取:
http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
//通过调用类smtp设置配置信息及发送邮件
Function SendEmailTest_QQ();
Begin
return rdo2 SendEamailTest();
End;
function SendEamailTest();
begin
obj:= CreateObject("smtp") ;
obj.UserName := '510543292' ; //邮箱账号(用户QQ账号)
obj.Password := 'abcdefg' ; //安全验证码(用户QQ的授权码)
obj.UseTLS:=1; //安全传输协议
obj.Host := 'smtp.qq.com' ; //smtp服务器
//obj.AuthType := 1 ;
obj.port:=465; //smtp服务器端口 465或587
try
Ret := obj.Connect();
echo ret;
Except
return echo "\r\nconnect fail\r\n" ;
end;
msg := CreateObject("MailMsg");
msg.subject := "邮件发送测试"; //文件标题
msg.from := "510543292@qq.com";
msg.ContentType:='text/html; charset="gb2312"';
msg.body := "定时任务调度"; //文件内容
msg.Sender := "510543292@qq.com"; //邮件发送人
msg.Recipients :="510543292@qq.com";//邮件接收人
try
echo obj.send(msg);
echo msg;
except
echo '\r\n邮件错误信息',obj.LastCmdResult();
return echo '\r\n邮件发送失败:',ExceptObject.errinfo;
end;
return echo 'over';
end
//范例四:通过QQ邮箱发送邮件。注意,通过QQ邮箱发送邮件,需要使用QQ账户和账户授权码。授权码的获取参照步骤说明进行配置并获取:
http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
//发送邮件的用户名及授权码的配置写在\tinysoft\analyse.net\plugin\fileMgr.ini 文件里
{ fileMgr.ini 文件中配置语句如(端口465或587):
[Smtp Settings]
smtp.QQ.COM:UseTLS=1
smtp.QQ.COM:Port=465
smtp.QQ.COM:UserName=510543292
smtp.QQ.COM:Password=abc
smtp.QQ.COM=smtp.QQ.COM
}
ret:=sysSendmail("smtp.qq.com",
'客户端发邮件测试',
'510543292@qq.com',
'510543292@qq.com',
'Tinysoft hello',
msg);
return msg;