【发布时间】:2014-02-14 02:52:42
【问题描述】:
已经使用 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('thomas@test.dk', 'SJ');
$mail->AddAddress('thomas@test.dk', '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>";
}
【问题讨论】:
-
您是否检查了 $_FILES 是否已设置? “打印_r($_FILES);”可能是上传不工作?
-
嗨,Erik,如果我将“print_r($_Files); 放在我的“header('Location: tak.php'); 之前然后我得到一个“Array()”。
-
这意味着没有可用于 php 的文件...这就解释了为什么你不能发送它们。您可以在此处找到详细信息和示例:php.net/manual/en/features.file-upload.multiple.php
标签: php attachment phpmailer