下面总结了三种在php实现邮件发送的实现代码,包括有phpmailer,mail()函数,JMail()这三种哦,有需要的朋友可参考一下。
利用php mail函数发送
使用mail()函数发送邮件,就必须要有一台不需要验证的SMTP服务器,这样的话配置工作会多一点,但是使用的时候就比较省事了,几行代码就可以,代码如下:
1 2 3 4 | $to = "test@163.com" ;
$subject = "Test" ;
$message = "This is a test mail!" ;
mail( $to , $subject , $message );
|
登入後複製
JMail发送邮件
账号必须有smtp发信权限,最好设置$jmail->silent=true,不让jmail自行抛出错误信息,常用的有网易、sogou、QQ、GMail邮箱,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php
$jmail = new COM('JMail.Message') or die ('无法调用Jmail组件');
$jmail ->silent = true;
$jmail ->charset = 'gb2312';
$jmail ->From = 'web535000@163.com';
$jmail ->FromName = 'BoboTest';
$jmail ->AddRecipient('abc1@163.com');
$jmail ->Subject = 'email test.';
$jmail ->Body = 'this is test email.';
$jmail ->MailServerUserName = 'web535000@163.com';
$jmail ->MailServerPassword = '123456';
try {
$email = $jmail ->Send('smtp.163.com');
if ( $email ) echo '发送成功';
else echo '发送失败';
} catch (Exception $e ){
echo $e ->getMessage();
}
?>
|
登入後複製
发信账号必须有smtp发信权限,对于网易的邮箱,06年后注册的新邮箱好像不行,早期的倒可以,还有,最好设置$jmail->silent=true,不让jmail自行抛出错误信息,在设置正常的时候,频繁发信会出现一些错误,据我估计应该是发信服务器设置了发信时间间隔。
phpmailer发送邮件,这个是相当简单的也是常用的,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php
function postmail_jiucool_com( $to , $subject = "" , $body = "" ){
error_reporting (E_STRICT);
date_default_timezone_set( "Asia/Shanghai" );
require_once (' class .phpmailer.php');
include ( "class.smtp.php" );
$mail = new PHPMailer();
$body = eregi_replace ( "[]" ,'', $body );
$mail ->CharSet = "UTF-8" ;
$mail ->IsSMTP();
$mail ->SMTPDebug = 1;
$mail ->SMTPAuth = true;
$mail ->SMTPSecure = "ssl" ;
$mail ->Host = "smtp.googlemail.com" ;
$mail ->Port = 465;
$mail ->Username = "SMTP服务器用户名" ;
$mail ->Password = "SMTP服务器密码" ;
$mail ->SetFrom('发件人地址,如admin#jiucool.com #换成@', '发件人名称');
$mail ->AddReplyTo( "邮件回复地址,如admin#jiucool.com #换成@" , "邮件回复人的名称" );
$mail ->Subject = $subject ;
$mail ->AltBody = "To view the message, please use an HTML compatible email viewer! - From www.111cn.net" ;
$mail ->MsgHTML( $body );
$address = $to ;
$mail ->AddAddress( $address , "收件人名称" );
if (! $mail ->Send()) {
echo "Mailer Error: " . $mail ->ErrorInfo;
} else {
echo "Message sent!恭喜,邮件发送成功!" ;
}
}
?>
|
登入後複製
PHPMailer的主要功能特点:
1.支持邮件 s/mime加密的数字签名
2.支持邮件多个 TOs, CCs, BCCs and REPLY-TOs
3.可以工作在任何服务器平台,所以不用担心WIN平台无法发送邮件的问题的
4.支持文本/HTML格式邮件
5.可以嵌入image图像
6.对于邮件客户端不支持HTML阅读的进行支持
7.功能强大的发送邮件调试功能debug
8.自定义邮件header
9.冗余SMTP服务器支持
10.支持8bit, base64, binary, and quoted-printable 编码
11.文字自动换行
12.支持多附件发送功能
13.支持SMTP服务器验证功能
14.在Sendmail, qmail, Postfix, Gmail, Imail, Exchange 等平台测试成功
15.提供的下载文件中,包括内容详细的说明文档及示例说明,所以不用担心难于上手的问题!
16.PHPMailer 非常小巧、简单、方便、快捷
教程链接:
随意转载~但请保留教程地址★