要使用PHP发送带附件的电子邮件,您可以使用PHPMailer库。以下是使用PHPMailer发送带附件的电子邮件的步骤:
composer require phpmailer/phpmailer
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try {
// 邮件服务器设置
$mail->SMTPDebug = SMTP::DEBUG_SERVER; // 开启详细调试输出
$mail->isSMTP(); // 设置邮件发送使用SMTP协议
$mail->Host = 'smtp.example.com'; // 设置邮件发送服务器的地址
$mail->SMTPAuth = true; // 开启使用SMTP认证功能
$mail->Username = 'your_email@example.com'; // 设置发送邮件的用户名
$mail->Password = 'your_email_password'; // 设置发送邮件的密码
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // 设置加密类型
$mail->Port = 465; // 设置邮件发送端口
// 发件人和收件人
$mail->setFrom('your_email@example.com', 'Your Name');
$mail->addAddress('recipient@example.com', 'Recipient Name');
// 附件
$mail->addAttachment('/path/to/your/attachment.ext', 'Attachment Name');
// 邮件内容
$mail->isHTML(true); // 设置邮件正文格式为HTML
$mail->Subject = 'Email with Attachment'; // 设置邮件主题
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
?>
smtp.example.com
:将其替换为您的邮件服务器地址。your_email@example.com
:将其替换为您的发件人电子邮件地址。your_email_password
:将其替换为您的发件人电子邮件密码。/path/to/your/attachment.ext
:将其替换为您要附加的文件路径和扩展名。recipient@example.com
:将其替换为收件人的电子邮件地址。Recipient Name
:将其替换为收件人的名称。Attachment Name
:将其替换为您要附加的文件名称。php send_email_with_attachment.php
现在,您应该能够成功发送带有附件的电子邮件。如果您遇到任何问题,请检查您的邮件服务器设置和电子邮件凭据是否正确。