我正在使用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。那么我做错了什么或错过了什么?谢谢!
答案 0 :(得分:0)
SMTPSecure = 'ssl'
几乎可以保证不在端口25上工作 - 但是为什么你在地址25上有 apache 监听?这是后缀的工作
您正在设置SMTPAuth
,但之后未设置Username
或Password
- 但您不需要auth进行本地主机投放,因此请将其关闭。
如果您通过localhost进行中继,则不需要加密(没有要保护的网段),并且它无论如何都不会起作用,因为您没有与该名称匹配的证书。
在大多数情况下,使用带有PHPMailer的SMTP通过localhost发送的所有操作都是调用isSMTP()
,其他属性的默认值应该可以正常工作。
如果您正在开发一个新项目,请不要使用过时的PHP版本 - 至少使用7.0。
我认为你需要退后一步,准确定义你正在尝试做什么 - 你当前的配置没什么意义。