PHP内置的mail函数使用起来不够方便,另外受其他语言的影响,博主更偏好面向对象的包管理模式,因此phpmailer成为了我用PHP发送邮件的首选,这里分享给大家。
库导入
这里使用composer进行包管理,以下是json文件:
1
2
3
4
5
6
7
|
{
"name" : "" ,
"description" : "test the mail" ,
"require" : {
"PHPMailer/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
|
<?php
// include("./vendor/autoload.php");
include ( "./vendor/phpmailer/phpmailer/class.phpmailer.php" );
include ( "./vendor/phpmailer/phpmailer/class.smtp.php" );
function postmail( $to , $subject = "" , $body = "" )
{
$mail = new PHPMailer(); #创建PHPMailer实例
$mail ->CharSet = 'utf-8' ; #设置编码形式,默认为iso-8859-1
$mail ->isSMTP(); #表示使用SMTP服务
$mail ->SMTPAuth = true; #使用SMTP认证
$mail ->Host = 'smtp.163.com' ; #SMTP主机名,这里以163为例
$mail ->Username = "xxxx@163.com" ; #SMTP服务的用户名
$mail ->Password = "xxxx" ; #SMTP用户的密码(现在多采用授权码的形式)
#下面的部分是用户可见的
$mail ->setFrom( "xxxx@163.com" , "userName" ); #第二个参数,用户看到的发送方的姓名,是可以随便改的
$mail ->Subject = $subject ; #邮件主题
$mail ->msgHTML( $body ); #邮件内容,这里采用HTML形式
$mail ->addAddress( $to , '' ); #地址,第二个参数是接受者,发送对象名为 '' 时,163的测试结果是SMTP服务商会把它改成‘我'
$mail ->addAttachment( './php.png' ); #添加附件
#发送
if ( $mail ->send())
{
echo "邮件发送成功" ;
} else
{
echo "邮件发送失败" ;
}
}
postmail( 'xxxx@qq.com' , "测试" , "你好吗" );
?>
|
测试结果
博主使用163作为发送方,发送给QQ邮箱、163邮箱均通过测试。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/fanghao/archive/2017/08/21/7407143.html