使用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';

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容