使用 PHP 脚本处理所有传入的电子邮件


Process ALL incoming e-mails with PHP script

对于我现在正在从事的项目,我希望用户能够向 username@sub.domain.com 发送电子邮件。这些电子邮件或更具体地说,发送给 sub.domain.com 的所有电子邮件都应由PHP脚本处理。

在该脚本中,我需要能够获取用户名(@前面的部分)以及电子邮件标题和正文。

  1. 是否可以在不事先为每个用户设置电子邮件别名的情况下执行此操作?

  2. 有没有办法在电子邮件到达时运行脚本?还是我必须运行 cron 作业才能定期检查?我不介意脚本是否可以通过网络访问。

  3. 从我目前所读到的内容来看,我认为我必须为此使用 IMAP 或 POP3,对吗?我对他们中的任何一个都没有经验。哪一个更适合这个用例?

  4. 执行此操作时还有什么要记住的吗?假设我完全控制了服务器,可以更改和安装任何必要的东西。

提前致谢:)

编辑:@Dagon提到将电子邮件通过管道传输到脚本作为#3的替代方案。如何?我以前从未做过这样的事情。

编辑2:我只想将PHP脚本挂接到所有传入的电子邮件。是不是太宽泛了?

  1. 您应该能够在一个邮箱中别名 @sub.domain.com,并且电子邮件的 From: 标头将包含用户名。

  2. 您需要保持脚本运行或在 cron 作业中运行脚本。到达的电子邮件无法触发脚本运行,而不会引入额外的、不必要的复杂性。

  3. 我认为,您最好使用IMAP,只是因为现有的IMAP库比POP的更好。一般来说,POP无论如何都是一个劣质协议。

  4. 您可能希望使用用户名以外的其他内容作为电子邮件地址,例如链接到用户名的随机字符串。否则,如果您知道某人的用户名,则可以将他们模拟到PHP脚本中。