【发布时间】:2017-08-27 08:18:44
【问题描述】:
我是使用 PHPmailer 的新手,我正在尝试发送电子邮件,如果表单中的所有输入均已填写,则一切正常。
但如果附件为空,我将无法发送电子邮件。 请帮助我如何发送没有附件的电子邮件或使附件是可选的。 这是我的代码: php
这是我的表格 form
谢谢你。
【问题讨论】:
-
请在问题中发布您的代码,而不是附上屏幕截图。
我是使用 PHPmailer 的新手,我正在尝试发送电子邮件,如果表单中的所有输入均已填写,则一切正常。
但如果附件为空,我将无法发送电子邮件。 请帮助我如何发送没有附件的电子邮件或使附件是可选的。 这是我的代码: php
这是我的表格 form
谢谢你。
【问题讨论】:
别写了
$mail->addAttachment(...
如果没有文件。
例如
if ($_FILES['attachemnt']['error'] == UPLOAD_ERR_OK) {
$mail->addAttachment(...
}
【讨论】:
根据你的问题,更具体地说
一切正常如果表单中的所有输入都已填写
您只需要删除JavaScript 内的附件input 字段的检查
如果这已经被处理了,那么我建议在你的php 文件的sendemail 函数中检查附件文件是否存在;如果没有,则不要添加$mail->addAttachment,如Ivan Bolnikh 建议或使用
if(isset($attachment))
$mail->addAttachment($attachment);
希望对你有帮助!!!
【讨论】:
如果你没有传递任何文件并且你调用函数 move_uploaded_file 它返回 false。所以 sendmail 不会被调用。您使文件上传对 sendmail 上瘾
试试这样的:
if(!move_uploaded_file($_FILES['attachment']['name'], $file)) {
$file = false;
}
sendmail($to, $subjects, $body, $file);
那么你可以说:
if($attachment) {
$mail->addAttachment($attachment);
}
对不起,代码格式不好,写在我的手机上
【讨论】:
$attachment是如何定义的。
$attachment 是函数sendmail() 中的必需参数如果您看上面我们将$file 作为第四个参数传递给函数sendmail 并且如果您观看budi 作为图像发布的代码它说:function sendmail($to, $subject, $body, $attachment) { ... }