我想从html表单(例如pdf文件)发送用户选择的附件文件,并通过电子邮件发送到目的地。
我可以通过邮件发送每个输入但附件,请你帮忙,任何帮助表示感谢。这是我的代码
<label>Mail : </label>
<input name="email" type="text" placeholder="mail adress">
<div class="box">
<input type="file" name="file" id="file" class="inputfile inputfile-5" />
</div>
我的form-handler.php(我只上传必要的行):
<?php
$file = $_POST['file'];
$email = $_POST['email'];
require $_SERVER["DOCUMENT_ROOT"] . '/PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->Debugoutput = 'html';
$mail->Host = '*****';
$mail->SMTPAuth = true;
$mail->Username = '****';
$mail->Password = '****';
$mail->From = $email;
$mail->SMTPSecure = 'tls';
$mail->Port = ****;
$mail->setFrom('*****', '*****');
$mail->addAddress('*****', '*****');
$mail->Subject = utf8_decode("Thank you for signing up");
$mail->AddAttachment( $_FILES['file']['tmp_name'], $_FILES['file']['name'] );
$mail->Body = ($file);
//$mail->AltBody = utf8_decode($file);
if (!$mail->Send()) {
echo "error. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "mail sent";
?>
答案 0 :(得分:0)
在发送附件之前,您需要找到附件的位置。因此,当您上传文件时,您可以将其指定为在特定文件夹中上传。
move_uploaded_file($_FILES["file"]["tmp_name"],"./upload/" . $_FILES["file"]["name"]);
在这种情况下,我们在目录中创建了一个“upload”文件夹,并将文件保存在此目录中。 上传文件后,我们必须将路径保存在一个变量中。 这样就可以了。
$filename = "./upload/" . $_FILES["file"]["name"];
现在我们拥有了所需的一切,我们可以将该文件作为附件通过电子邮件发送。
$mail->AddAttachment($filename);
我希望这对你有所帮助。