PHP邮件函数,发送电子邮件和邮件附件
发布时间:2023-10-05 11:03:52
PHP中有几个内置的邮件函数可用于发送电子邮件和邮件附件,最常用的函数是mail()函数。
mail()函数的语法如下:
mail(to, subject, message, headers, parameters);
参数说明:
- to: 必需,表示邮件的目标地址,可以是单个地址或多个地址,多个地址之间用逗号分隔。
- subject: 必需,表示邮件的主题。
- message: 必需,表示邮件的内容。
- headers: 可选,表示邮件的头部信息,比如发件人和回复地址等。可以使用换行符"\r
"分隔不同的头部信息。
- parameters: 可选,表示一些其他的发送参数,比如发送方式等。
下面是一个示例代码,演示如何使用mail()函数发送电子邮件:
$to = "recipient@example.com";
$subject = "Test Email";
$message = "This is a test email.";
// 设置发件人和回复地址
$headers = "From: sender@example.com\r
";
$headers .= "Reply-To: sender@example.com\r
";
// 发送邮件
if (mail($to, $subject, $message, $headers)) {
echo "Email sent successfully.";
} else {
echo "Failed to send email.";
}
在发送电子邮件的过程中,我们还可以添加附件。附件可以是文本文件、图片、PDF等任何类型的文件。要添加附件,我们需要使用PHP中的其他函数来读取文件内容,并将其添加到邮件的内容中。
下面是一个示例代码,演示如何发送包含附件的电子邮件:
$to = "recipient@example.com";
$subject = "Test Email with Attachment";
$message = "This email has an attachment.";
// 设置发件人和回复地址
$headers = "From: sender@example.com\r
";
$headers .= "Reply-To: sender@example.com\r
";
// 读取附件文件内容
$file = fopen("attachment.pdf", "r");
$attachment = fread($file, filesize("attachment.pdf"));
fclose($file);
// 对附件内容进行编码
$attachment = chunk_split(base64_encode($attachment));
// 添加附件到邮件内容中
$boundary = md5(rand());
$headers .= "MIME-Version: 1.0\r
";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r
";
$message = "--$boundary\r
";
$message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\r
";
$message .= "Content-Transfer-Encoding: 7bit\r
\r
";
$message .= "$message\r
\r
";
$message .= "--$boundary\r
";
$message .= "Content-Disposition: attachment; filename=\"attachment.pdf\"\r
";
$message .= "Content-Type: application/pdf; name=\"attachment.pdf\"\r
";
$message .= "Content-Transfer-Encoding: base64\r
\r
";
$message .= "$attachment\r
";
$message .= "--$boundary--";
// 发送含附件的邮件
if (mail($to, $subject, $message, $headers)) {
echo "Email with attachment sent successfully.";
} else {
echo "Failed to send email with attachment.";
}
在上面的代码中,我们首先使用fopen()函数打开附件文件,并使用fread()函数读取文件内容。然后,我们使用chunk_split()函数对文件内容进行编码。最后,我们将编码后的附件添加到邮件内容中,并使用边界(boundary)将邮件内容和附件分隔开来。
以上就是使用PHP邮件函数发送电子邮件和邮件附件的示例。希望对您有所帮助!
