1

可能重复:
为什么我不应该使用 PHP 的 mail() 函数?

在 PHP 中,只要我可以使用非常简单mail()的原生函数发送电子邮件,

  • 使用的充分理由是smtp什么?

注意:拜托,我没有足够的邮件系统知识。所以也许我需要简要解释一下why使用这两个系统的主要区别。

4

2 回答 2

1

mail()在后台使用 SMTP 它不会为您递送邮件。当您调用mail()PHP 时,只是将电子邮件交给本地系统的 SMTP 系统(sendmail、postfix、exim 等)。一旦交接完成,PHP 就退出了电子邮件游戏。由 SMTP 系统实际启动传递过程。

话虽如此,mail() 对于快速而肮脏的简单电子邮件很有用。但是任何中等复杂的东西(多个收件人、混合文本/html 电子邮件、附件等)都变得非常乏味/复杂,只需使用 mail(),但在使用更好的 smtp 库时非常简单,如 PHPMailer 或 Swiftmailer。

于 2012-10-12T05:36:46.340 回答
1

PHP手册的片段:

值得注意的是,mail() 函数不适合循环处理大量电子邮件。此函数为每封电子邮件打开和关闭一个 SMTP 套接字,效率不高。

如需发送大量电子邮件,请参阅 » PEAR::Mail 和 » PEAR::Mail_Queue 包。

再加上 Marc B 关于复杂性的说法(尤其是当您谈到多部分时),我想您已经得到了解释。

于 2012-10-12T05:43:33.913 回答