当邮件字段为空但不是必需时,PHPmailer不发送邮件?

http://nodeiterator.pl/

Why my php mailer script is not sending mail when message field is empty but is not required ? I get the message "please try again later". What am I missing ?

This is my script:

$msg = "";
use PHPMailer\PHPMailer\PHPMailer;
include_once "phpmailer/src/PHPMailer.php";
include_once "phpmailer/src/Exception.php";


if (isset($_POST['submit'])) {
    $subject = $_POST['subject'];
    $email = $_POST['email'];
    $message = $_POST['message'];

    if (isset($_FILES['attachment']['name']) && $_FILES['attachment']['name'] != "") {
        $file = "attachment/" . basename($_FILES['attachment']['name']);
        move_uploaded_file($_FILES['attachment']['tmp_name'], $file);
    } else
        $file = "";

    $mail = new PHPMailer();



    $mail->addAddress('piterdeja@gmail.com');
    $mail->setFrom($email);
    $mail->Subject = $subject;
    $mail->isHTML(true);
    $mail->Body = $message;
    $mail->addAttachment($file);

    if ($mail->send())
        $msg = "Your email has been sent, thank you!";
    else
        $msg = "Please try again!";


}

I don't think PHPMail by default will let you send an email with an empty body, but you can just go:

$mail->AllowEmpty = true;

Check the error returned:

if(!$mail->Send()) {
    echo 'Mailer Error: ' . $mail->ErrorInfo;
}

Normally phpmailer does not accept an empty body, you must force it using the attribute $mailer->AllowEmpty = true;