前言:本篇是探索如何配置 Magento 2 的邮件服务器的分支
我的本地环境是 win10 + wamp,我想用 php 的 mail()函数通过腾讯企业邮箱发送邮件。
使用腾讯企业邮箱请参考免费域名邮箱 —— 使用腾讯企业邮箱
下载 sendmail
Wamp 本身并没有带邮件服务器,所以我们要先去下载一个,windows 环境下,请去fake sendmail for windows下载。然后解压后将sendmail.exe
和sendmail.ini
拷贝到 wamp 的安装目录下,比如我的安装目录是:D:\wamp64
,所以我将它们两个放在D:\wamp64\sendmail
目录下。
企业邮箱服务器地址
登录你的腾讯企业邮箱,在设置 > 客户端设置 中,可以看到:
服务默认是开启的,服务器地址也给你了。
配置 php.ini
现在我们来设置 php.ini,通过设置 php.ini 配置文件,mail()函数就可以使用邮件服务器了。注意,php.ini 是有两个的,一个配置命令行,一个配置服务器。两个都要修改。
修改的内容如下(以博主自己的为例):
SMTP = smtp.exmail.qq.com
smtp_port = 25
sendmail_from = "owner@mail.hellomagento2.com"
sendmail_path = "D:\wamp64\sendmail\sendmail.exe -t"
配置 sendmail.ini
然后打开刚刚复制到 wamp 安装目录下的 sendmail.ini, 做如下修改(以博主自己的为例):
smtp_server = smtp.exmail.qq.com
smtp_port = 25
auth_username = "owner@mail.hellomagento2.com"
auth_password = "yourpassword"
force_sender = "owner@mail.hellomagento2.com"
使用 mail() 发邮件
好了重新启动一下 wamp,然后我们来创建一个 php 文件测试下是否可以发邮件了。
<?php
$txt = "First line of text\nSecond line of text";
// 如果一行大于 70 个字符,请使用 wordwrap()。
$txt = wordwrap($txt,70);
// 发送邮件
if(mail("1518525862@qq.com","My subject", $txt)) {
echo 'success';
} else {
echo "fail";
}
在浏览器中请求下该文件,应该就会显示”success” 了,表明邮件发送成功了。
美中不足的是,会显示是由XXX代发的,这样感觉不好,以后我们再想办法去掉它。
更新:显示由XX代发是因为没有设置发送者,或者发送者和 php.ini 中不一致导致的。
<?php
$txt = "First line of text\nSecond line of text";
// 如果一行大于 70 个字符,请使用 wordwrap()。
$txt = wordwrap($txt,70);
$headers = 'From: sales@mail.hellomagento2.com';
// 发送邮件
// mail("1518525862@qq.com","My subject", $txt)
if(mail("1518525862@qq.com","My subject", $txt, $headers)) {
echo 'success';
} else {
echo "fail";
}
这一段设置发送者为sales@mail.hellomagento2.com
和 php.ini 中的owner@mail.hellomagento2.com
不一致,所以会如下显示:
如果我们将$headers = 'From: sales@mail.hellomagento2.com';
改成$headers = 'From: owner@mail.hellomagento2.com';
就不会有代发字样了,如下: