我有一个使用phpmailer发送电子邮件的网页。我将主机设置为"relay-hosting.securerver.net",将mail->sender、mail->from和mail->addReplyTo都设置为同一地址,这是我希望将弹出的电子邮件通知发送到的地址。此电子邮件地址也与同一主机和smtp主机一起使用。当我输入一个错误的电子邮件地址时,我不会收到未送达的通知。我做错了什么?感谢
PHPmailer不处理接收电子邮件。它纯粹是一个允许PHP与SMTP服务器通信以发送电子邮件的库。它绝对不支持充当邮件客户端(例如接收)。
PHPmailer无法知道被退回的电子邮件,因为退回发生在PHPmailr将电子邮件交给传出SMTP服务器很久之后。在现实世界中,PHPmailer拿着你的信,沿着街区走下去,把它放进邮箱。反弹发生在稍后,当邮递员将印有"退回发件人"字样的信件带回时——PHPmailer根本不参与其中。
您的选择是:
1) 使用PHP的imap函数连接到现有的pop/imap服务器并以这种方式检索电子邮件
2) 在SMTP端使用.forward
或类似的重定向将传入的电子邮件"发送"到PHP脚本。
我知道这是一个古老而有答案的问题,但对于那些后来可能发现这篇文章有类似问题的人来说,你可以通过访问smtp邮件中继服务来解决这个问题。例如,如果您使用jangosmtp,您的jangosmpp控制面板中有一个选项,可以硬编码反弹报告应发送到的地址,也可以始终将反弹报告发送到发件人地址。