2017-08-27 279 views
-1

即時通訊新手使用PHPmailer,我想發送一封電子郵件,一切都工作正常,如果在窗體中的所有輸入已滿。PHP郵件不能發送電子郵件沒有附件

但如果附件爲空,我無法發送電子郵件。 請幫助我如何發送沒有附件的電子郵件或使附件是可選的。 這裏是我的代碼: php

,這是我的形式 form

感謝ü。

+2

請在問題中發佈您的代碼,而不是附上屏幕截圖。 –

回答

0

如果您沒有傳遞任何文件,並且您調用函數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); 
} 

對不起,糟糕的代碼格式,寫在我的手機上

+0

這是工作! 非常感謝你的先生。 – budi

+0

沒問題。如果它幫助你,請將這篇文章標記爲answere – csskevin

+0

你沒有顯示'$ attachment'是如何定義的。 – Synchro

1

只是不寫

$mail->addAttachment(... 

如果沒有文件。

例如

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

在哪裏我可以添加該條件先生? 非常感謝你。 – budi

+0

請發佈您的代碼,以便我可以更改它。 –

1

此基礎上你的問題,更具體

一切都正常工作如果表單中的所有輸入充滿

你只需要刪除檢查附件input場內你的JavaScript

如果已經處理完畢,比我建議檢查附件是否存在,請在php文件的sendemail函數中進行檢查;如果沒有,比不添加$mail->addAttachmentIvan Bolnikh曾建議或使用

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

希望它可以幫助!