【问题标题】:PHP mailer cant send email without attachment [duplicate]PHP邮件程序无法发送没有附件的电子邮件[重复]
【发布时间】:2017-08-27 08:18:44
【问题描述】:

我是使用 PHPmailer 的新手,我正在尝试发送电子邮件,如果表单中的所有输入均已填写,则一切正常。

但如果附件为空,我将无法发送电子邮件。 请帮助我如何发送没有附件的电子邮件或使附件是可选的。 这是我的代码: php

这是我的表格 form

谢谢你。

【问题讨论】:

  • 请在问题中发布您的代码,而不是附上屏幕截图。

标签: php html phpmailer


【解决方案1】:

别写了

$mail->addAttachment(...

如果没有文件。

例如

if ($_FILES['attachemnt']['error'] == UPLOAD_ERR_OK) {
    $mail->addAttachment(...
}

【讨论】:

  • 先生,我可以在哪里添加该条件?非常感谢你。
  • 请把代码贴出来,我可以改一下。
【解决方案2】:

根据你的问题,更具体地说

一切正常如果表单中的所有输入都已填写

您只需要删除JavaScript 内的附件input 字段的检查

如果这已经被处理了,那么我建议在你的php 文件的sendemail 函数中检查附件文件是否存在;如果没有,则不要添加$mail->addAttachment,如Ivan Bolnikh 建议或使用

if(isset($attachment))
    $mail->addAttachment($attachment);

希望对你有帮助!!!

【讨论】:

    【解决方案3】:

    如果你没有传递任何文件并且你调用函数 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) { ... }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 2020-09-19
    • 2014-09-08
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    相关资源
    最近更新 更多