用了很长时间去一步一步摸索,终于先在163 网易邮箱上测试成功了,下面就把这个过程分享给大家。
在进入正题这前先看下网易(163)邮箱的服务器地址和端口号:
一、前期准备
使用网易邮箱,当然要注册个账号,这个就不用我多说了,自己去注册。。。
注册完之后,就要去开启 POP3/SMTP/IMAP服务。 在开启服务时,需要客户端授权密码(这里需要手机验证,MD拐弯抹角的要手机号码)。
步骤一:
步骤二:
确定后会弹出下面这样的对话框,也会把这个授权密码发送你的短信里,记住这个授权密码一定要记住
服务开启后,如果没有设置【姓名】,在写邮件发送时会提示设置【姓名】后才能发送邮件,当然也可以提前设置好。。
二、代码部分
PHPMailer下载 ( 下载后把PHPMailer放在Vendor目录下,另外文件中有很多不必要的东西,自己看着处理吧)
细心的同学在 class.phpmailer.php class.pop3.php class.smtp.php 这三个文件里看下默认的端口号,其SMTP的默认端口号是25 与 163下的SMTP发件服务器的非SSL协议端口号一样。
html布局:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<!doctype html>
<
html
lang
=
"en"
>
<
head
>
<
meta
charset
=
"UTF-8"
>
<
title
>Document</
title
>
</
head
>
<
body
>
<
form
action
=
"__URL__/add"
method
=
"post"
enctype
=
"multipart/form-data"
>
收件人邮箱:<
input
type
=
"text"
name
=
"mail"
/>
标题:<
input
type
=
"text"
name
=
"title"
/>
内容<
input
type
=
"text"
name
=
"content"
/>
<
input
class
=
"button"
type
=
"submit"
value
=
"发送"
/>
</
form
>
</
body
>
</
html
>
|
config.php 配置:
1
2
3
4
5
6
7
8
|
'MAIL_HOST'
=>
'smtp.163.com'
,
//smtp服务器的名称
'MAIL_SMTPAUTH'
=>TRUE,
//启用smtp认证
'MAIL_USERNAME'
=>
'zha****22@163.com'
,
//发件人的邮箱名
'MAIL_PASSWORD'
=>
'olagbqsyeyhilcwu'
,
//163邮箱发件人授权密码
'MAIL_FROM'
=>
'zha****22@163.com'
,
//发件人邮箱地址
'MAIL_FROMNAME'
=>
'天空还下着雪'
,
//发件人姓名
'MAIL_CHARSET'
=>
'utf-8'
,
//设置邮件编码
'MAIL_ISHTML'
=>TRUE,
// 是否HTML格式邮件
|
function.php公共函数:
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
|
/*
* 发送邮件
* @param $to string
* @param $title string
* @param $content string
* @return bool
* */
function
sendMail(
$to
,
$title
,
$content
) {
Vendor(
'PHPMailer.PHPMailerAutoload'
);
$mail
=
new
PHPMailer();
//实例化
$mail
->IsSMTP();
// 启用SMTP
$mail
->Host=C(
'MAIL_HOST'
);
//smtp服务器的名称(这里以QQ邮箱为例)
$mail
->SMTPAuth = C(
'MAIL_SMTPAUTH'
);
//启用smtp认证
$mail
->Username = C(
'MAIL_USERNAME'
);
//发件人邮箱名
$mail
->Password = C(
'MAIL_PASSWORD'
) ;
//163邮箱发件人授权密码
$mail
->From = C(
'MAIL_FROM'
);
//发件人地址(也就是你的邮箱地址)
$mail
->FromName = C(
'MAIL_FROMNAME'
);
//发件人姓名
$mail
->AddAddress(
$to
,
"尊敬的客户"
);
$mail
->WordWrap = 50;
//设置每行字符长度
$mail
->IsHTML(C(
'MAIL_ISHTML'
));
// 是否HTML格式邮件
$mail
->CharSet=C(
'MAIL_CHARSET'
);
//设置邮件编码
$mail
->Subject =
$title
;
//邮件主题
$mail
->Body =
$content
;
//邮件内容
$mail
->AltBody =
"这是一个纯文本的身体在非营利的HTML电子邮件客户端"
;
//邮件正文不支持HTML的备用显示
return
(
$mail
->Send());
}
|
add方法调用:
1
2
3
4
5
6
7
|
public
function
add() {
if
(SendMail(
$_POST
[
'mail'
],
$_POST
[
'title'
],
$_POST
[
'content'
])) {
$this
->success(
'发送成功!'
);
}
else
{
$this
->error(
'发送失败'
);
}
}
|
做完以上工作后,接下来访问地址,通过表单向163(网易)邮箱发送邮件(如:发送给123456@163.com),也可以发送给自己,发送后,就会看到发送成功。下面你可以登录邮箱查看邮件。
QQ邮箱收发邮件
QQ邮箱收发件服务器地址和端口
准备:
1、设置邮箱独立密码
2、开启POP3/SMTP服务
配置:
1
2
3
4
5
6
7
8
|
'MAIL_HOST'
=>
'smtp.qq.com'
,
//smtp服务器的名称
'MAIL_SMTPAUTH'
=>TRUE,
//启用smtp认证
'MAIL_USERNAME'
=>
'541****34@qq.com'
,
//发件人邮箱名
'MAIL_PASSWORD'
=>
's****1241'
,
//qq邮箱发件人独立密码
'MAIL_FROM'
=>
'541****34@qq.com'
,
//发件人地址
'MAIL_FROMNAME'
=>
'恋狱'
,
//发件人姓名(qq邮箱昵称)
'MAIL_CHARSET'
=>
'utf-8'
,
//设置邮件编码
'MAIL_ISHTML'
=>TRUE,
// 是否HTML格式邮件
|
其他无需改变,完成后不仅可以给QQ邮箱用户发送邮件,也可以给163邮箱用户发送邮件。