0

我整个下午和今晚都被困在这个问题上,但找不到答案。但我相信这是 Mountain Lion 上的一些简单配置问题。

我想使用 PHP 发送电子邮件,我安装了 PEAR:Mail 包;一切正常。

但是当我尝试用 PHP 发送电子邮件时,它没有返回任何错误;但未收到电子邮件。

我进一步深入研究了这个问题,发现我需要正确设置我的本地 postfix 邮件程序。因此,我按照这些文章进行设置: http ://benjaminrojas.net/configuring-postfix-to-send-mail-from-mac-os-x-mountain-lion/#comment-259 ;当那不起作用时,我改为使用那个:http: //slashusr.wordpress.com/2012/02/14/enabling-postfix-for-outbound-relay-via-gmail-on-os-x-lion -11/。博文中的基本步骤是通过在 /etc/postfix/main.cf 中进行一些设置来教你如何使用 GMail 发送出去

但是当我用命令在终端中测试它时:

date | mail -s test <my_email_address>

什么都没有发生,除了当我再次输入“邮件”时,它提示我一条新消息,告诉我这个错误(部分,只有我认为有用的):

:主机 smtp.gmail.com[209.85.225.108] 说:需要 530-5.5.1 身份验证。如需了解详情,请访问 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 aa4sm11414435igc.15(回复 MAIL FROM 命令)

--1306515822A0.1347279593/songyy.local Content-Description: 投递报告 Content-Type: message/delivery-status

我访问了错误消息中给出的链接,但这无关紧要。

如果有人能给我一些建议,我将非常感激。

4

1 回答 1

1

我想使用 PHP 发送电子邮件,我安装了 PEAR:Mail 包;一切正常。

很好。然后你必须有一个“邮件中继服务器”地址,邮件被发送到该地址。它通常由您的 Internet 提供商提供。

您必须将该地址配置为 Postfix,如relayhost. 通常不需要其他设置。

您遵循的方法要复杂得多,因为它需要 Postfix 连接到 GMail 并通过 TLS/SSL 以用户身份进行身份验证。为此,您必须将用户名和密码存储到您的 GMail 帐户(或为此目的创建的另一个帐户)的后缀passwd文件中。

GMail 抱怨“需要身份验证”这一事实告诉我们,您要么跳过了这个细节,要么存储了错误的密码;所以GMail 不能通过电子邮件转发过程。

请注意,如果您只使用普通 SMTP,则出站电子邮件将以明文形式发送(与 GMail 使用 SSL 加密相反)。

如果您需要详细了解您的邮件发生了什么,请查看系统日志。

另一件要注意的事情,你说:

我通过设置指定了文件: smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd

该文件需要采用特定格式(在文件本身中记录)。但是,在那之后,您必须文件转换为hashfile,它是相同的文件名但.db扩展名。有些发行版会自动执行此操作,否则您需要手动运行 postfix 实用程序postmap(或在紧要关头,makemap)。在你的情况下:

postmap -c /etc/postfix /etc/postfix/sasl_passwd

这将把/etc/postfix/sasl_passwd它输入并散列到/etc/postfix/sasl_passwd.db这是 Postfix 检查的实际文件。您所遵循的教程可能未涵盖此特定细节,并且 Postfix 仍在检查从以前构建的 .db 文件(并且是空的!)sasl_passwd

你说得很对,通过在 PEAR 中指定用户、主机和传递,你有效地覆盖了 Postfix 配置——我认为 Mail 包执行所谓的直接到 MX交换,因此甚至根本不需要 Postfix。

日志文件应在 main.conf 中指定,通常为/var/log/messages/var/log/mail(.something)

于 2012-09-10T12:55:25.850 回答