如何使用PHP发送SMTP电子邮件而不使用第三方类

如何使用PHP发送SMTP电子邮件而不使用第三方类

问题描述:

I've been using PHPMailer to send SMTP emails, and also have heard some recommend various other 3rd party classes.

I've always been a surprised and a little disappointed that this functionality is not native in PHP.

Do I still need to use a 3rd party class to do so? If not, how? If so, any idea why it isn't native?

我一直在使用PHPMailer发送SMTP电子邮件,也听过一些推荐的其他第三方类。

我一直感到惊讶,有点失望,这个功能在PHP中不是原生的。 p>

我还需要使用第三方吗? 上课要这样做? 如果没有,怎么样? 如果是这样,任何想法为什么它不是原生的? p> div>

PHP does have a native function mail() to send emails, but it is not very efficient. From the official PHP documentation -

It is worth noting that the mail() function is not suitable for larger volumes of email in a loop. This function opens and closes an SMTP socket for each email, which is not very efficient.

Official PHP docs suggest using PEAR::Mail library for efficient email support. I would rather use PHPmailer or Swift mailer(http://swiftmailer.org/) though as they both have excellent support and also well documented.

If you are using windows the php mail() function will not work unless you have an smtp server installed on your PC. Windows passes the email to the email server which then sends the email if it has access through your firewall. Also note that mail() as documented is not the correct way to send an email. In order to send an email the email message must be composed in a manner resembling the RFC documentation.