PHPMailer 发送邮件但没有文件附件

标签 php attachment phpmailer

已经使用 PHPMailer 4 小时了,它工作正常并发送邮件。 但是当我附加文件时 - 然后文件不包含在我收到的邮件中。

我只在“File1”中添加了一个文件,当我从脚本收到邮件时,有人可以看到/说出什么问题以及为什么我没有收到附件吗?

我尝试过:

$mail->AddAttachment($_FILES['file1']['tmp_name'], $_FILES['file1']['name']);

$mail->AddAttachment($file1);

没有运气附加文件。

我的代码是:

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = false;
$mail->Host = 'smtp.curanet.dk';
$mail->Port = 25;
$mail->SetFrom('<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d1a5b9bebcb0a291a5b4a2a5ffb5ba" rel="noreferrer noopener nofollow">[email protected]</a>', 'SJ');
$mail->AddAddress('<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="37435f585a5644774352444319535c" rel="noreferrer noopener nofollow">[email protected]</a>', 'SJ');
$mail->Subject = 'Henvendelse fra Hjemmeside';

$besked1 = "Der er flg. henvendelse fra hjemmesiden ang. Tilbud: \n";
$besked1 .= "Navn: " . $_POST['fromname']. "\n";
$besked1 .= "Telefon: " . $_POST['fromtlf']. "\n";
$besked1 .= "E-mail: " . $_POST['fromemail']. "\n";
$besked1 .= "Start dato: " . $_POST['begin_day']. ". " . $_POST['begin_month']. " " . $_POST['begin_year']. "\n";
$besked1 .= "Slut dato: " . $_POST['complete_day']. ". " . $_POST['complete_month']. " " . $_POST['complete_year']. "\n";
$besked1 .= "Budget: " . $_POST['building_budget']. " kr.". "\n";
$besked1 .= "Besked: " . $_POST['frommsg'];

$mail->Body = $besked1; 
$mail->IsHTML(false);

$mail->AddAttachment($_FILES['file1']['tmp_name'], $_FILES['file1']['name']);
$mail->AddAttachment($_FILES['file2']['tmp_name'], $_FILES['file2']['name']);
$mail->AddAttachment($_FILES['file3']['tmp_name'], $_FILES['file3']['name']);
/*$mail->AddAttachment($file1);
$mail->AddAttachment($file2);
$mail->AddAttachment($file3);*/

if($mail->send())
{
header('Location: tak.php');
} else {
    echo "<script>alert('Mailer Error: " . $mail-> ErrorInfo."')</script>";
}

最佳答案

问题是你想直接传递文件:

$mail->AddAttachment($_FILES['file1']['tmp_name'], $_FILES['file1']['name']);

但是您必须保存文件然后链接它:

$mail->AddAttachment("path/to/file");

edti:至少这是我之前遇到的问题,临时位置不是一个选项。

关于PHPMailer 发送邮件但没有文件附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21310187/

相关文章:

javascript - 如何将单选按钮与输入文本字段绑定(bind)?

email - iOS 7 UIActivityViewController 电子邮件附件

php - 将电子邮件附件安全地保存在网络服务器上

PHPMailer 不发送 CC 或 BCC

php - 带有登录信息的简单 Web 应用程序用户

php - MySql AVG() 和 WHERE

php - 允许在 WooCommerce 订单处于待处理状态时减少库存

wordpress - 如何检索当前获取附件的 MIME 类型

c# - .Net C# : Read attachment from HttpWebResponse

php - 通过 PHPMailer 发送电子邮件时出现身份验证错误