本文实例为大家分享了PHPMailer发送邮件的具体代码,供大家参考,具体内容如下
PHPMailer类源代码下载地址:https://github.com/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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
<?php
/*
to: 邮件接收地址
subject: 邮件主题
body: 邮件内容
attachpath:附件地址
cc: 邮件抄送地址
bcc: 邮件暗抄送地址
*/
function send_mail( $to , $subject = "" , $body = "" , $attachpath = "" , $cc = "" , $bcc = "" )
{
// 对邮件内容进行必要的过滤
$body = eregi_replace ( "[\]" , '' , $body );
// 设定时区
date_default_timezone_set( "PRC" );
require_once ( 'class.phpmailer.php' );
require_once ( "class.smtp.php" );
// 实例化PHPMailer对象
$mail = new PHPMailer();
// 设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置为 UTF-8
$mail ->CharSet = "UTF-8" ;
// 设定使用SMTP服务
$mail ->IsSMTP();
// 启用 SMTP 验证功能
$mail ->SMTPAuth = true;
// SMTP 安全协议
$mail ->SMTPSecure = "ssl" ;
// SMTP 服务器
$mail ->Host = "smtp.qq.com" ;
// SMTP服务器的端口号
$mail ->Port = 465;
// SMTP服务器用户名和密码
$mail ->Username = "xxxxxx@qq.com" ;
$mail ->Password = "xxxxxx" ;
// 设置发件人地址和名称,名称可有可无
$mail ->SetFrom( "xxxxxx@qq.com" , "xxxxxx" );
// 设置邮件接收地址和名称,第二个参数无所谓。必须用AddAddress添加邮件接收地址。AddReplyTo方法没什么用。
//$mail->AddReplyTo("xxxxxx@163.com", "xxxxxx");
$mailaddrs = split( "," , $to );
foreach ( $mailaddrs as $addres )
{
//校验邮箱地址是否合法
if (filter_var( $addres , FILTER_VALIDATE_EMAIL))
{
$mail ->AddAddress( $addres );
}
}
// 设置邮件抄送地址
if ( $cc != "" )
{
$ccaddrs = split( "," , $cc );
foreach ( $ccaddrs as $ccaddr )
{
//校验邮箱地址是否合法
if (filter_var( $ccaddr , FILTER_VALIDATE_EMAIL))
{
$mail ->addCC( $ccaddr );
}
}
}
// 设置邮件暗抄送地址,私密发送
if ( $bcc != "" )
{
$bccaddrs = split( "," , $bcc );
foreach ( $bccaddrs as $bccaddr )
{
//校验邮箱地址是否合法
if (filter_var( $bccaddr , FILTER_VALIDATE_EMAIL))
{
$mail ->addBCC( $bccaddr );
}
}
}
// 设置邮件主题
$mail ->Subject = $subject ;
// 可选项,向下兼容考虑
$mail ->AltBody = "为了查看该邮件,请切换到支持 HTML 的邮件客户端" ;
// 设置邮件内容
$mail ->MsgHTML( $body );
//使用HTML格式发送邮件
$mail ->IsHTML(true);
// 添加附件,第一个参数是附件地址,第二个参数附件名
//$mail->AddAttachment("images/phpmailer.gif");
$mail ->AddAttachment( $attachpath );
// 发送邮件
if (! $mail ->Send())
{
echo "发送失败:" . $mail ->ErrorInfo . PHP_EOL;
}
else
{
echo "恭喜,邮件发送成功!" . PHP_EOL;
}
}
$emailAddr = "xxxxxx@163.com,xxxxxx@qq.com," ;
send_mail( $emailAddr , "测试邮件" , "<h1>使用PHPMailer类发送的邮件。</h1>" , "mail/20170216.gif" , "xxxxxx@qq.com" , "" );
?>
|
测试结果:
说明:第44行的SMTP服务器密码为qq邮箱授权码。
登录QQ邮箱->设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务->生成授权码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。