PHP实现发送邮件
不同类型的邮箱发送邮件的方式也是不同的。
下面我们就先给大家举例介绍qq邮箱开启发送邮件服务的方法。
首先我们登录qq邮箱,打开设置,选择帐户。
然后在帐户下,找到如下所示的开启服务部分。
开启服务中,前两个选项均可实现邮件发送服务。点击开启,会出现验证提示。
确认验证,成功开启POP3/SMTP服务后,就会出现以下授权码。
那么此授权码就可以用于PHP实现邮件发送的开发方法中。
注: 每次开启生成的授权码都会不同,安全性较高。
实现发送邮件的php代码如下:
<?php
/*发送邮件方法
*@param $to:接收者 $title:标题 $content:邮件内容
*@return bool true:发送成功 false:发送失败
*/
function sendMail($to,$title,$content) {
// 这个PHPMailer 就是之前从 Github上下载下来的那个项目
require './PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
//使用smtp鉴权方式发送邮件
$mail->isSMTP();
//smtp需要鉴权 这个必须是true
$mail->SMTPAuth = true;
// qq 邮箱的 smtp服务器地址,这里当然也可以写其他的 smtp服务器地址
$mail->Host = 'smtp.qq.com';
//smtp登录的账号 这里填入字符串格式的qq号即可
$mail->Username = '[email protected]';
// 这个就是之前得到的授权码,一共16位
$mail->Password = 'xccemvofmwcvdgjg';
$mail->setFrom('[email protected]', '你的主管');
// $to 为收件人的邮箱地址,如果想一次性发送向多个邮箱地址,则只需要将下面这个方法多次调用即可
$mail->addAddress($to);
// 该邮件的主题
$mail->Subject = $title;
// 该邮件的正文内容
$mail->Body = $content;
// 使用 send() 方法发送邮件
if(!$mail->send()) {
return '发送失败: ' . $mail->ErrorInfo;
} else {
return "发送成功";
}
}
// 调用发送方法,并在页面上输出发送邮件的状态
var_dump(sendMail('[email protected]','会议主题','今天下午开会'));
此方法中,首先我们引入了PHPMailer中的PHPMailerAutoload.php这个文件。PHPMailer是一个用来发送电子邮件的函数包,PHPMailerAutoload.php则是一个自动加载的文件,方便快捷。
那么PHP实现邮件发送的功能,就可以通过PHPMailerAutoload.php来实现。在引入PHPMailerAutoload.php后,我们需要对其中的PHPMailer类进行实例化。
最后就可以直接调用PHPMailer类中的相关方法来实现邮件发送功能。
$mail->isSMTP()则表示使用SMTP服务;
$mail->SMTPAuth设置是否使用身份验证(必须为true);
$mail->Host设置发送方的SMTP服务器地址;
$mail->Username设置发送方的qq邮箱用户名;
$mail->Password 设置发送方的邮箱密码,注意用qq邮箱这里填写的是“授权密码”而不是邮箱的登录密码!
$mail->setFrom()用来设置发件人信息,如邮件格式说明中的发件人,这里会显示为send_user_name([email protected]),send_user_name是当做名字显示。
$mail->addAddress()用来设置收件人的邮箱地址。
$mail->Subject 设置邮件标题;
$mail->Body 设置邮件正文。
最后使用 send() 方法发送邮件,并判断邮件是否发送成功,失败则输出错误信息$mail->ErrorInfo。
注:PHPMailer中class.phpmailer.php是主文件,用来实现具体功能,class.smtp.php是使用smtp需要的文件。
PHP实现发送邮件的完整项目源码,下载地址: http://www.php.cn/xiazai/learn/5627
查看邮件,发送成功。