我尝试使用PHP邮件程序以最简单的方式发送-email-with -an附加文件。
我尝试使用此
$mail ->addAttachment("path_to_pdf", "pdf_name);
但它确实有效,因为" Mail已发送"但" PDF文件附件"没有发送。
请帮我解决我的问题,我想在我想发送给接收者的电子邮件中附上一个pdf文件。谢谢!
以下是我用来发送带文件附件的电子邮件的文件。
index.html
<html>
<head>
</head>
<body>
<form method="post" action="send_mail.php" enctype="multipart/form-data">
To : <input type="text" name="mail_to"> <br/>
Subject : <input type="text" name="mail_sub">
<br/>
Message <input type="text" name="mail_msg">
<br/>
File: <input type="file" name="file" >
<br/>
<input type="submit" value="Send Email">
</form>
</body>
</html>
和
send_mail.php
<?php
$mailto = $_POST['mail_to'];
$mailSub = $_POST['mail_sub'];
$mailMsg = $_POST['mail_msg'];
require 'PHPMailer-master/PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail ->IsSmtp();
$mail ->SMTPDebug = 0;
$mail ->SMTPAuth = true;
$mail ->SMTPSecure = 'ssl';
$mail ->Host = "smtp.gmail.com";
$mail ->Port = 465; // or 587
$mail ->IsHTML(true);
$mail ->Username = "acc.ldevera@gmail.com";
$mail ->Password = "accountsamplepassword";
$mail ->SetFrom("acc.sample@gmail.com");
$mail ->Subject = $mailSub;
$mail ->Body = $mailMsg;
$mail ->AddAddress($mailto);
$mail->AddAttachment('pdf_files/', 'reservation.pdf');
if(!$mail->Send())
{
echo "Mail Not Sent";
}
else
{
echo "Mail Sent";
}
?>
请帮我解决我的问题,谢谢!
答案 0 :(得分:1)
这条线没有做你期望的事情
$mail->AddAttachment('pdf_files/', 'reservation.pdf');
它试图找到一个名为&#39; pdf_files /&#39;的文件。并想要添加它。但是,正如您现在可能想象的那样,这不是一个合适的文件名。 AddAttachment
的第一个参数是文件的路径(即包含文件的文件名),第二个参数是文件名,在电子邮件中显示 ,如何文件应该被调用/命名,因此您可以以不同方式调用它,而无需重命名原始文件。
所以上面的行可能应该是:
$mail->AddAttachment('pdf_files/reservation.pdf', 'reservation.pdf');