欢迎访问宙启技术站
智能推送

PHP邮件函数:如何在PHP中发送电子邮件和附件?

发布时间:2023-06-30 04:31:10

在PHP中,可以使用mail()函数来发送电子邮件。mail()函数的基本语法如下:

mail($to, $subject, $message, $headers, $attachments);

其中,参数解释如下:

$to:接收邮件的地址,可以是单个地址或多个地址之一。

$subject:邮件的主题。

$message:邮件的内容。

$headers:邮件的头信息,可以用于设置发件人、回复地址等信息。

$attachments:可选参数,用于添加附件。

下面是一个示例代码,演示如何发送一封带有附件的电子邮件:

$to = 'recipient@example.com';
$subject = 'Hello';
$message = 'This is a test email';
$file_path = '/path/to/attachment.pdf';

// 添加附件
$file_name = basename($file_path);
$file_content = file_get_contents($file_path);
$file_encoded = base64_encode($file_content);
$attachment = chunk_split($file_encoded);

// 设置邮件头信息
$headers = "From: sender@example.com\r
";
$headers .= "Reply-To: sender@example.com\r
";
$headers .= "MIME-Version: 1.0\r
";
$headers .= "Content-Type: multipart/mixed; boundary=\"boundary\"\r
";

// 构建邮件内容
$content = "This is a multi-part message in MIME format.\r
\r
";
$content .= "--boundary\r
";
$content .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\r
";
$content .= "Content-Transfer-Encoding: 7bit\r
\r
";
$content .= $message . "\r
\r
";
$content .= "--boundary\r
";
$content .= "Content-Type: application/pdf; name=\"" . $file_name . "\"\r
";
$content .= "Content-Disposition: attachment; filename=\"" . $file_name . "\"\r
";
$content .= "Content-Transfer-Encoding: base64\r
\r
";
$content .= $attachment . "\r
\r
";
$content .= "--boundary--";

// 发送邮件
if(mail($to, $subject, $content, $headers)) {
    echo "Email sent successfully";
} else {
    echo "Failed to send email";
}

在上述示例中,我们首先指定了收件人的地址、邮件主题和内容。然后,我们使用file_get_contents()函数读取附件的内容,并使用base64_encode()函数将其编码。接下来,我们设置了邮件的头信息,包括发件人和回复地址,以及MIME版本和内容类型。最后,我们使用mail()函数发送邮件,如果发送成功,则返回true,否则返回false。

这是一个基本的示例,你可以根据自己的需要进行修改和扩展。注意,这只是一种用于发送电子邮件和附件的方法之一,还有其他更高级的方法可供选择,例如使用SMTP服务器来发送邮件。