【发布时间】:2021-12-13 12:00:30
【问题描述】:
我有一个 HTML 表单,我正在使用 phpMailer。完成表单并单击提交在文本输入字段等中输入的所有数据时,将按预期工作。但是,当我在收到电子邮件时将文件附加到输入类型“文件”时,没有附件。
有没有人对为什么没有附上附件有任何建议?
仅供参考 - 目前,该网站没有 SSL 证书,并且电子邮件将进入垃圾邮件文件夹 - 这可能是问题吗?
我是 phpMailer 的新手,通过研究已经能够实现以下目标。
phpMailer()
<?php
$file = $_POST['file'];
// more variables...
$CustomerSignature = $_POST['q21'];
$Date = $_POST['q22'];
$filename = "./upload/" . $_FILES["file"]["name"];
move_uploaded_file($_FILES["file"]["tmp_name"],"./upload/" . $_FILES["file"]["name"]);
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
require 'phpMailer/src/Exception.php';
require 'phpMailer/src/PHPMailer.php';
require 'phpMailer/src/SMTP.php';
require 'phpMailer/src/OAuth.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 3;
$mail->Host = 'smtp.hostinger.com';
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Username = '######';
$mail->Password = '######';
$mail->isHTML(true);
$mail->setFrom('######', '######');
$mail->addReplyTo('######', '######');
$mail->addAddress('######', '######');
$mail->addAddress('######');
$mail->AddAttachment($filename);
$mail->Subject = 'New Credit Application';
$mail->Body = '<b>New Credit Application (Online)!</b></br>'
.'Trading Name: '.$TradingName.'</br>'
.'blah blah blah etc.'
.'Customer Signature: '.$CustomerSignature.'</br>'
.'Date: '.$Date.'</br>';
if (!$mail->send()) {
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'The email message was sent.';
}
?>
HTML 文件附件部分:
<form method="POST" action="testmail2.php" id="myform" class="fs-form fs-form-full" autocomplete="off">
<ol class="fs-fields">
<li>
<label class="fs-field-label fs-anim-upper" for="file">Attachment</label>
<input class="fs-anim-lower" id="file" name="file" type="file" required/>
</li>
【问题讨论】:
-
启用所有错误级别并显示它。
$path是未定义的变量,我在任何地方都看不到它。在发送电子邮件之前,请确保文件已正确上传。 -
@vee ,第一行显示错误日志,无法访问文件:
-
@vee,我做了一些代码更改,现在错误消失了,电子邮件附加了一个名为 uplaod 的空白文件,日志显示如下:2021-12-13 12:28:19客户端->服务器:内容传输编码:base64 2021-12-13 12:28:19 客户端->服务器:内容处置:附件;文件名=上传
-
@Martin , 6.5.3 - 最新的,我今天才从 GitHub 下载它