【问题标题】:PHPMailer with mamp pro on localhost本地主机上带有 mamp pro 的 PHPMailer
【发布时间】:2017-10-29 23:26:43
【问题描述】:

我正在 Mac 上开发,我正在使用 mamp pro 和 phpmailer 来测试一些 php 电子邮件代码。我能够使用我的个人 gmail 成功发送和接收电子邮件。现在我想看看当电子邮件用户名不是标准时我将如何发送电子邮件,即@coporateemail.com 或@mybusiness.com,但我似乎无法弄清楚如何配置 mamp pro 和 phpmailer 来发送电子邮件从 localhost 使用上面示例中的“非标准”电子邮件。这是我的 phpmailer 配置代码

$mail->Host = 'localhost';
$mail->SMTPAuth = true;
$mail->isSMTP(); 
$mail->SMTPDebug = 4;
$mail->Port = 25;
$mail->SMTPSecure = 'ssl';
$mail->isHtml(true);
$mail->setFrom('info@example.com', $name);
$mail->addReplyTo($replyto, 'noreply@example.com');
$mail->addAddress("example@test.com");
$mail->Subject    = $subject;
$mail->msgHtml($html);
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

我在 mamp pro 中的 php 版本是 5.6.31。在我的 php.ini 文件中,我有

SMTP = localhost
smtp_port = 25

在 MAMP Pro 中,我的端口是:

Apache-> port: 3005; ssl port: 25(it was 257 by default)

在 Mamp Pro 的 Postfix 选项卡中,我有“将外发电子邮件的域设置为:example.com”,并且未选中“使用智能主机进行路由”选项。

最后我的phpmailer错误输出如下

2017-10-29 23:00:29 Connection: opening to ssl://localhost:25, timeout=300, options=array()
2017-10-29 23:00:29 Connection failed. Error #2: stream_socket_client(): unable to connect to ssl://localhost:25 (Connection refused)
2017-10-29 23:00:29 SMTP ERROR: Failed to connect to server: Connection refused (61)
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

所以重申一下。我想发送一封不使用 gmail 的电子邮件,但我似乎无法在 localhost 上正确配置 phpmailer。那么我做错了什么或错过了什么?谢谢!

【问题讨论】:

    标签: php email localhost phpmailer mamp-pro


    【解决方案1】:

    SMTPSecure = 'ssl' 几乎可以保证不会在端口 25 上工作 - 但是到底为什么你有 apache 在端口 25 上监听?这是后缀的工作

    您正在设置 SMTPAuth,但未设置 UsernamePassword - 但您不需要身份验证来进行 localhost 传送,因此只需将其关闭即可。

    如果您通过 localhost 进行中继,则不需要加密(没有要保护的网段),并且无论如何它都不起作用,因为您没有与名称匹配的证书。

    在大多数情况下,使用带有 PHPMailer 的 SMTP 通过 localhost 发送所需要做的就是调用 isSMTP(),其他属性的默认值应该可以正常工作。

    如果您正在开发一个新项目,请不要使用过时版本的 PHP - 至少使用 7.0。

    我认为你需要退后一步,准确定义你想要做什么——你当前的配置没有什么意义。

    【讨论】:

    • 谢谢,我是 phpmailer 的新手,不确定最好的配置是什么(对于本地主机),因此提出了这个问题。我也会将版本升级到 7。因此,如果我正确理解了您的答案,那么对于如何修复我的配置有点不清楚。我必须删除 $mail->SMTPAuth = true; $mail->Port = 25(或将其更改为 257)然后在我的 MAMP PRO Postfi 配置中,我应该让 apache 在 257(默认)上监听 ssl?
    • 那些端口号很不寻常——我建议尽可能使用默认值,除非您特别需要,否则不要更改标准端口。通常 apache 会监听 80 和 443 端口,后缀监听 25、465 和 587
    猜你喜欢
    • 2013-05-30
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 2013-11-15
    • 2011-06-27
    • 2019-03-01
    相关资源
    最近更新 更多