如何使用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?

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.