php 发送带附件邮件示例



<?php
// 邮件发送设置
$to = "recipient@example.com"; // 收件人
$subject = "Email with Attachment"; // 邮件主题
$message = "This is a test email with an attachment."; // 邮件正文
$headers = "From: sender@example.com\r\nMIME-Version: 1.0\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\""; // 邮件头,包括发件人和边界定义
$random_hash = md5(date('r', time())); // 生成随机hash值用于边界

// 附件部分
$fileatt = "path/to/your/file.zip"; // 附件路径
$fileatt_type = "application/zip"; // 附件类型
$fileatt_name = basename($fileatt); // 附件名称

// 读取文件内容并编码
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
$data = chunk_split(base64_encode($data));

// 邮件正文和附件部分
$body = "--PHP-mixed-".$random_hash."\r\n"."Content-Type: text/plain; charset=\"iso-8859-1\"\r\n"."Content-Transfer-Encoding: 7bit\r\n\r\n".$message."\r\n\r\n";
$body .= "--PHP-mixed-".$random_hash."\r\n"."Content-Type: ".$fileatt_type.";"." name=\"".$fileatt_name."\"\r\n"."Content-Transfer-Encoding: base64\r\n"."Content-Disposition: attachment;"." filename=\"".$fileatt_name."\"\r\n\r\n".$data."\r\n\r\n";
$body .= "--PHP-mixed-".$random_hash."--";

// 发送邮件
mail($to, $subject, $body, $headers);

echo "Mail sent!";
?>

此PHP脚本展示了如何发送一封包含附件的电子邮件。注意,你需要将`$to`(收件人地址)、`$from`(发件人地址,这里在`$headers`中定义)、`$fileatt`(附件路径)和`$fileatt_type`(附件MIME类型)替换成你自己的信息。此示例中使用了ZIP文件作为附件,但你可以根据需要更改文件类型和路径。请确保服务器配置允许通过PHP发送邮件,并且`php.ini`中的SMTP设置(如果适用)已正确配置。