Windows 下配置用 mail()发送邮件

前言:本篇是探索如何配置 Magento 2 的邮件服务器的分支

我的本地环境是 win10 + wamp,我想用 php 的 mail()函数通过腾讯企业邮箱发送邮件。
使用腾讯企业邮箱请参考免费域名邮箱 —— 使用腾讯企业邮箱

下载 sendmail

Wamp 本身并没有带邮件服务器,所以我们要先去下载一个,windows 环境下,请去fake sendmail for windows下载。然后解压后将sendmail.exesendmail.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'; 就不会有代发字样了,如下:

发表评论

电子邮件地址不会被公开。 必填项已用*标注