php 中使用 mail 函数发送电子邮件需以下步骤:创建邮件函数对象,指定收件人、主题、正文和额外的标头信息。发送邮件,将标头信息和正文以 \n 分隔。检查发送状态,返回一个布尔值表示成功或失败。

PHP 函数如何发送电子邮件
在 PHP 中使用函数发送电子邮件非常简单。本教程将指导您发送电子邮件所需的步骤,并提供一个实战案例。
步骤
1. 创建邮件函数对象
要发送电子邮件,我们需要创建 PHP 的 mail() 函数对象。此函数需要四个参数:
- 收件人电子邮件地址
- 邮件主题
- 邮件正文
- 额外的标头信息(可选)
以下是一个示例:
立即学习“PHP免费学习笔记(深入)”;
| 1 2 3 | 
$to= 'recipient@example.com';
 $subject= 'Test Email';
 $body= 'Hello World! This is a test email.';
 | 
 
2. 设置额外的标头信息(可选)
对于某些电子邮件客户端,设置额外的标头信息可以提高可信度。您可以使用 \r\n 将多行标头信息附加到邮件正文。
以下是一些常见的标头信息:
- From: 发件人的电子邮件地址
- Reply-To: 收件人可以回复的电子邮件地址
- Content-Type: 指定电子邮件正文的格式(例如,text/html)
以下是一个设置额外标头信息的示例:
| 1 2 3 | 
$headers= "From: sender@example.com\r\n";
 $headers.= "Reply-To: sender@example.com\r\n";
 $headers.= "Content-Type: text/html\r\n";
 | 
 
3. 发送邮件
一旦您设置好邮件函数对象,就可以发送电子邮件了。使用 \n 分隔标头信息和邮件正文:
| 1 | 
$success= mail($to, $subject, $body, $headers);
 | 
 
4. 检查发送状态
mail() 函数会返回一个布尔值,表示发送是否成功。您可以使用它来处理错误或显示成功消息:
| 1 2 3 4 5 | 
if($success) {
     echo'Email sent successfully!';
 } else{
     echo'Failed to send email.';
 }
 | 
 
实战案例
发送带有附件的 HTML 格式的电子邮件:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 
$to= 'recipient@example.com';
 $subject= 'Sending HTML Email with Attachment';
 $body= '<p>Hello World! This is an <b>HTML</b> email.</p>';
 
 $headers= "From: sender@example.com\r\n";
 $headers.= "Reply-To: sender@example.com\r\n";
 $headers.= "Content-Type: text/html\r\n";
 
 $attachment= 'path/to/attachment.txt';
 
 $boundary= uniqid();
 $headers.= "MIME-Version: 1.0\r\n";
 $headers.= "Content-Type: multipart/mixed; boundary=$boundary\r\n";
 
 $multipart= "--$boundary\r\n";
 $multipart.= "Content-Type: text/html\r\n\r\n";
 $multipart.= $body. "\r\n";
 
 $multipart.= "--$boundary\r\n";
 $multipart.= "Content-Type: application/octet-stream\r\n";
 $multipart.= "Content-Disposition: attachment; filename=". basename($attachment) . "\r\n";
 $multipart.= "Content-Transfer-Encoding: base64\r\n\r\n";
 $multipart.= chunk_split(base64_encode(file_get_contents($attachment)));
 
 $success= mail($to, $subject, $multipart, $headers);
 | 
登录后复制