使用phpmailer发送邮件

首先致谢,本次脱坑多亏了健神的帮忙,代码几乎都是来源于他。

正文

我们比如用gmail发送邮件,其实是

1)登陆到gmail的服务器上

2)写邮件

3)发送

当我们用php发送gmail邮件的时候,可以简单理解为,php代替我们登陆到gmail的服务器上执行1)2)3),因此我们需要给php提供我们的账户

那么,这里php登陆的服务器地址一般就是smtp.邮件域名.com,如smtp.gmail.com,smtp.qq.com,下面这个链接是大部分邮件服务的smtp和pop地址,当然我们只关心smtp
http://blog.sina.com.cn/s/blog_a3d2fd2d0101ifm1.html

关于这个我已经在文章《本次软工实习笔记》中介绍过了。
相关代码:https://github.com/spyflying/send-mailer-with-phpmailer

1. 配置

将上面链接所给的代码拷贝到服务器上。在服务器运行config.php, 得到php配置。这里主要关注socket和openssl有没有enable。如果没有,打开php.ini, 将socket和openssl的注释去掉。重新启动服务器。

2. 运行

按照中文注释,将template.php中对应位置进行修改,就可以用来发送邮件了。

3. 中文乱码

这是与用python发送相同的问题,不过解决起来似乎要麻烦一些。

1)标题

加入如下代码即可解决

$mail->Subject = '=?utf-8?B?'.base64_encode($mail->Subject).'?='; //设置title的编码格式

2)内容

首先,将PHPMailer.php中,charset默认为‘iso-8859-1’,需要将其修改为‘UTF-8’.

之后,在发送邮件的php文件中,加入:

$mail->Charset = 'UTF-8';

做完这两步之后,基本上就能解决邮件中文乱码的问题了。

你可能感兴趣的:(使用phpmailer发送邮件)