如何通过phpmailer发送smtp邮件?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文里面,苏南大叔给大家带来的是phpmailer
这个类库的基本使用demo
。这个库的使用,一般需要提供用户名和密码去真实的服务器上面做验证,所以发送结果还是可以信任的。和系统的mail
函数相比而言,更强大更安全吧。但是却相对而言,缺乏便捷性,鱼和熊掌不可兼得。
php
原生mail
函数
php
发email
,可以调用php
的函数mail
函数发送邮件,函数说明可以点击这里查看:
但是整个mail
函数有很大的局限性,首先,它在win下
面,默认是不能发送邮件的,需要配置个mail
服务器。而在linux
下面一般是不需要配置的。其次,这个mail
函数的发送结果,是不可信的。因为它可以伪造发信人地址。具体的,以后有空开贴在说这个话题。
phpmailer
下载安装
phpmailer
的github
地址是这里:
当然,在composer
大行其道的今天,你也可以使用composer
来安装phpmailer
。方法如下:
composer require phpmailer/phpmailer
phpmailer
的使用范例
下面是一个使用smtp
进行phpmailer
发信的简单函数包装(当然你也可以使用pop3
发信):
include_once '/libs/phpmailer/class.phpmailer.php';
include_once '/libs/phpmailer/class.smtp.php';
/**
* 邮件发送函数
*/
function sendMail($to, $title, $content) {
$mail = new PHPMailer(true); //实例化PHPMailer类,true表示出现错误时抛出异常
$mail->IsSMTP(); // 启用SMTP
$mail->Host = 'smtp.qiye.163.com'; //smtp服务器的名称
$mail->SMTPAuth = TRUE; //启用smtp认证
$mail->Username = 'demo@newsn.net'; //你的邮箱名
$mail->Password = 'yourpasswordgoeshere'; //邮箱密码
$mail->From = 'demo@newsn.net'; //发件人地址(也就是你的邮箱地址)
$mail->FromName = title; //发件人姓名
$toarr = explode(',', $to);
foreach ($toarr as $v) {
$mail->AddAddress($v);
}
$mail->WordWrap = 50; //设置每行字符长度
$mail->IsHTML(TRUE); // 是否HTML格式邮件
$mail->CharSet = 'utf-8'; //设置邮件编码
$mail->Subject = $title; //邮件主题
$mail->Body = $content; //邮件内容
$mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示
return($mail->Send());
}
下面是个非常全的官方demo
。
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user@example.com'; // SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient
$mail->addAddress('ellen@example.com'); // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');
$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
这里还可以发送附件呢,说起来还是挺强大的。大家有用得上的,可以看着demo
打造自己的版本。
广告
更多php
相关文章,请点击:https://newsn.net/tag/php/ 。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。