使用 WordPress 建站的站长都知道,WordPress 有一个注册功能,填了用户名和邮箱后,会收到一封邮件,邮件里有一个链接,点击该链接可以获得密码和修改密码。
我们基本都会使用 SMTP 插件或者需要服务器启用 mail 函数,其实很多的虚拟主机基本都是禁用了 mail 函数,因此我们只能使用 SMTP 服务发送邮件。
网上 STMP 插件已经很多我们不在介绍了,今天说说下无插件纯代码 STMP 邮件发送方式。
相信很多站长都看过网上到处飞的配置 WordPress 邮件 SMTP 方法,但试过之后,总是不成功,例如:
- // 配置邮件
- add_action('phpmailer_init', 'mail_smtp');
- function mail_smtp( $phpmailer ) {
- $phpmailer->FromName = '微码盒'; // 发件人昵称
- $phpmailer->Host = 'smtp.qq.com'; // 邮箱SMTP服务器
- $phpmailer->Port = 465; // SMTP端口,不需要改
- $phpmailer->Username = '123456@qq.com'; // 邮箱账户
- $phpmailer->Password = 'aabbccddffgg'; // 此处填写邮箱生成的授权码,不是邮箱登录密码
- $phpmailer->From = '123456@qq.com'; // 收件邮箱账户
- $phpmailer->SMTPAuth = true;
- $phpmailer->SMTPSecure = 'ssl'; // 端口25时 留空,465时 ssl,不需要改
- $phpmailer->IsSMTP();
- }
修改其中的对应的参数就可以了,但是大部分提供配置代码的说明中没有明确写明第 8 行$phpmailer->Password 配置中的密码是邮箱第三方授权码,而不是邮箱的登录密码,这是不能成功发邮件的关键之处。
下面仅以 QQ 邮箱为例,简单说一下如何开启邮箱 IMAP/SMTP 服务和获得第三方授权码。
首先将上面的代码添加到当前主题函数模板 functions.php 中,并修改其中的相关信息。
登录你的 QQ 邮箱,依次点击,设置 → 账户,找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV 服务”设置选项,开启邮箱“IMAP/SMTP 服务”。
点击下面的“生成授权码 ”,按要求发送短信:配置邮件客户端,到指定的号码,之后点击“我已发送”,会自动生一个授权码。
要记好这个授权码,因为只显示一次,没记住只能再次发送短信了,将这个授权码填写到配置信息中即可。
我自己只试过 QQ 邮箱和 126 的,其它邮箱方法类似,貌似目前所有邮箱端口都可以设置为 465,都支持 ssl 加密。
邮箱 | SMTP 服务器地址 | 非 SSL 端口号 | SSL 端口号 |
163.com | smtp.163.com | 25 | 465 或 994 |
126.com | smtp.126.com | 25 | 465 或 994 |
qq.com | smtp.qq.com | 25 | 465 或 587 |
网易企业邮箱 | smtp.qiye.163.com | 25 | 994 |
腾讯企业邮箱 | smtp.exmail.qq.com | 25 | 465 |