sendEmail、jmail、phpmailer
本文总结下平常经常用到的三个邮件收发协议包文件——sendEmail、jmail、phpmailer
一、sendEmail
SendEmail是一个轻量级的、命令行SMTP的电子邮件客户端。如果你有需要从命令行发送电子邮件,该用该包将是非常棒的,其上具有:使用简单,功能丰富。其时其也是一个跨平台的软件包。在LINUX下使用时需要安装perl支持。因为其是通过.pl代码实的程序,可以直接通过文件编辑工具查看其源代码。window下不需要额外安装perl包。
jmail是一个第三方邮件操作组件,通常位于web服务器端,和站点程序紧密配合来接收及提交邮件到邮件服务器的控件,让网站拥有发送邮件既接收邮件的功能。在进行程序编写时(如VB、C#、Delphi),也经常会用到其dll文件。不过该dll包经常会被杀毒软件当做病毒处理。不过很多病毒程序也经常会用到该组件用于密码等获取内容发送到指定邮箱。
下面是VB调用jmail发送邮件的一段代码:
Option?Explicit?
Sub?SendMail(Optional ByVal?sSubject?As String,?Optional ByVal?sBody?As String,?Optional ByVal?sFileName?As String)?
Dim?Jmail?
Set?Jmail = CreateObject(?"jmail.Message ")?
If?sFileName < >?" "?Then?Jmail.AddAttachment sFileName?'附件?
Jmail.Charset =?"gb2312 "?
Jmail.Silent =?False?
Jmail.Priority =?1?'邮件状态,1-5 1为最高?
Jmail.MailServerUserName =?"test_yk "?'Email帐号?
Jmail.MailServerPassWord =?"******* "?'Email密码?
Jmail.FromName =?"邮件 "?'发信人姓名?
Jmail.From =?"test_yk@163.com "?'发邮件地址地址?
Jmail.Subject = sSubject?'主题?
Jmail.AddRecipient?"test_yk@163.com "?'收信人地址?
Jmail.Body = sBody?'信件正文?
Jmail.Send (?"smtp.163.com ")?'SMTP服务器,如smtp.sohu.com
Set?Jmail =?Nothing?
End Sub?
Sub?Command1_Click()?
SendMail?"测试 ",?"我爱你 ",?"这里填附件地址 "?
MsgBox?"OK "?
End Sub
$jmail = new COM('JMail.Message')?? or die('无法调用Jmail组件');
$jmail->silent = true; //屏蔽例外错误
$jmail->charset = 'gb2312'; //否则中文会乱码,也可以使用utf-8
$jmail->From = 'test_yk@163.com'; //这里理论上是可以不与发件人地址相同的,但用163的试了几次都不行,改成一样的就可以了
$jmail->FromName = 'Test';
$jmail->AddRecipient('abc1@163.com'); //可添加多个邮件接受者
//$jmail->AddRecipient('abc2@163.com');
//$jmail->AddRecipient('abc3@163.com');
$jmail->Subject = 'email test.';
$jmail->Body = 'this is test email.';
$jmail->MailServerUserName = 'test_yk@163.com'; //发信邮件账号
$jmail->MailServerPassword = '******'; //账户的密码
try{
??? $email = $jmail->Send('smtp.163.com');
??? if($email) echo '发送成功';
??? else echo '发送失败';
} catch (Exception $e){
??? echo $e->getMessage();
}
?>
PHPMailer的主要功能特点:
- 支持邮件 s/mime加密的数字签名
- 支持邮件多个 TOs, CCs, BCCs and REPLY-TOs
- 可以工作在任何服务器平台,所以不用担心WIN平台无法发送邮件的问题的
- 支持文本/HTML格式邮件
- 可以嵌入image图像
- 对于邮件客户端不支持HTML阅读的进行支持
- 功能强大的发送邮件调试功能debug
- 自定义邮件header
- 冗余SMTP服务器支持
- 支持8bit, base64, binary, and quoted-printable 编码
- 文字自动换行
- 支持多附件发送功能
- 支持SMTP服务器验证功能
- 在Sendmail,?qmail,?Postfix,?Gmail, Imail, Exchange 等平台测试成功
- 提供的下载文件中,包括内容详细的说明文档及示例说明,所以不用担心难于上手的问题!
- PHPMailer?非常小巧、简单、方便、快捷
require_once("phpmailer/class.phpmailer.php"); 否则的话会产生类的重定义。
class
Mails{
?
//$address,$username,$cont
?
function
setmail(
$address
,
$username
,
$cont
){
?
$mail
=
new
PHPMailer();
//建立邮件发送类
?
$mail
->CharSet =
"UTF-8"
;
?
$mail
->IsSMTP();
// 使用SMTP方式发送
?
<span style=
"color: #ff0000;"
>
$mail
->Host =
"smtp.qq.com"
;
// <strong>您的企业邮局域名</strong></span>
?
$mail
->SMTPAuth = true;
// 启用SMTP验证功能
?
$mail
->Username =
"<a href="
mailto:123201564@qq.com
">123456@qq.com</a>"
;
// 邮局用户名(请填写完整的email地址)
?
$mail
->Password =
"123456"
;
// 邮局密码
?
$mail
->Port=25;
?
$mail
->From =
"<a href="
mailto:123201564@qq.com
">123456@qq.com</a>"
;
//邮件发送者email地址
?
$mail
->FromName =
"name"
;
?
$mail
->AddAddress(
"$address"
,
"$username"
);
//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
?
//$mail->AddReplyTo("", "");
?
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件
?
//$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式
?
$mail
->Subject =
"请重新设置您的密码"
;
//邮件标题
?
$mail
->Body =
$cont
;
//邮件内容
if
(!(
$mail
->Send())){
?
return
"邮件发送失败.错误原因: "
.
$mail
->ErrorInfo;
}
?
return
true;
?
}
}
详细用法不再介绍,其下载下来的包里有具体的样例。包可以到http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/下载。
You can donate through PayPal.My paypal id: itybku@139.comPaypal page: https://www.paypal.me/361way
近期评论