Home  >  Article  >  Backend Development  >  How to send emails using PHP using Simple Mail Transfer Protocol (SMTP)

How to send emails using PHP using Simple Mail Transfer Protocol (SMTP)

WBOY
WBOYOriginal
2023-05-22 12:40:531011browse

With the development of the Internet, email has become one of the important ways for people to communicate in daily life. For some website developers, sending emails on the website is also particularly critical. As a server-side scripting language, PHP naturally needs to provide a way to send emails. This article will introduce how PHP uses Simple Mail Transfer Protocol (SMTP) to send emails.

SMTP Introduction

Simple Mail Transfer Protocol (SMTP) is a standard protocol for sending and receiving emails. SMTP was originally standardized in RFC821 in 1982 and has been updated to RFC5321. The SMTP protocol uses port 25 of the TCP protocol for communication, which is generally provided by the mail server.

PHP method of sending emails

SMTP class

PHP provides the SMTP class to support sending emails through the SMTP server. This class provides some interfaces to configure SMTP server parameters, such as server address, authentication method, etc.

The following is an example of sending an email:

$smtp = new SMTP();

// 设置SMTP服务器地址和端口
$smtp->setServer('smtp.example.com', 25);

// 开启debug模式,可以查看SMTP服务器的交互信息
$smtp->debug = true;

// SMTP认证用户名和密码
$smtp->setAuth('username', 'password');

// 添加一个收件人
$smtp->addRecipient('recipient@example.com', 'Recipient Name');

// 设置邮件主题和内容
$smtp->setSubject('Test Email');
$smtp->setMessage('This is a test email.');

// 发送邮件
$smtp->send();

As can be seen from the above example of sending an email, the method of using the SMTP class is relatively cumbersome. It is necessary to manually configure the SMTP server parameters, authentication methods, etc., and the code is lengthy and difficult to maintain.

PHPMailer Class

In response to the above-mentioned inconvenient use problems, the PHPMailer class has become an easier-to-use PHP email sending class library. The PHPMailer class encapsulates the SMTP class and provides a more friendly interface, such as using the password of the SMTP server, using SSL and TLS, etc.

The following is an example of using the PHPMailer class to send emails:

use PHPMailerPHPMailerPHPMailer;

// 创建PHPMailer实例
$mail = new PHPMailer();

// 配置SMTP服务器参数
$mail->isSMTP();
$mail->Host = 'smtp.example.com'; // SMTP服务器地址
$mail->SMTPAuth = true;
$mail->Username = 'username'; // SMTP认证用户名
$mail->Password = 'password'; // SMTP认证密码

// 设置SSL加密
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;

// 设置发件人和收件人
$mail->setFrom('from@example.com', 'From Name');
$mail->addAddress('recipient@example.com', 'Recipient Name');

// 设置邮件主题和内容
$mail->Subject = 'Test Email';
$mail->Body = 'This is a test email.';

// 发送邮件
if ($mail->send()) {
    echo '邮件发送成功!';
} else {
    echo '邮件发送失败: ' . $mail->ErrorInfo;
}

Using the PHPMailer class, you can more easily configure SMTP server parameters, support SSL encryption, and provide a friendly interface. In addition, the PHPMailer class also supports SMTP server authentication error handling, attachment sending and other functions. It is one of the more commonly used class libraries for PHP email sending.

Summary

Through the introduction of this article, we know that PHP sends emails through SMTP. At the same time, PHP also provides two methods: SMTP class library and PHPMailer class library. In actual development, it is very important to choose the appropriate class library according to your needs.

The above is the detailed content of How to send emails using PHP using Simple Mail Transfer Protocol (SMTP). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn