2017-09-01 58 views
2

我正在嘗試使用PHP郵件發送帶有附加文件的電子郵件的最簡單方法。PHP中的簡單PDF文件附件郵件程序

我試圖用這個

$mail ->addAttachment("path_to_pdf", "pdf_name); 

但它簡化版,工作,因爲「發送郵件,」但不發出的「PDF文件附件」。

請幫我解決我的問題,我想在我想發送給接收者的電子郵件中附上pdf文件。謝謝!

這裏是我用來發送電子郵件w /文件附件的文件。

中的index.html

 <html> 
     <head> 
     </head> 
     <body> 
      <form method="post" action="send_mail.php" enctype="multipart/form-data"> 
      To : <input type="text" name="mail_to"> <br/> 
      Subject : <input type="text" name="mail_sub"> 
      <br/> 
      Message <input type="text" name="mail_msg"> 
      <br/> 
      File: <input type="file" name="file" > 
      <br/> 
       <input type="submit" value="Send Email"> 

      </form> 
     </body> 
    </html> 

send_mail.php

 <?php 

     $mailto = $_POST['mail_to']; 
     $mailSub = $_POST['mail_sub']; 
     $mailMsg = $_POST['mail_msg']; 
     require 'PHPMailer-master/PHPMailerAutoload.php'; 
     $mail = new PHPMailer(); 
     $mail ->IsSmtp(); 
     $mail ->SMTPDebug = 0; 
     $mail ->SMTPAuth = true; 
     $mail ->SMTPSecure = 'ssl'; 
     $mail ->Host = "smtp.gmail.com"; 
     $mail ->Port = 465; // or 587 
     $mail ->IsHTML(true); 
     $mail ->Username = "[email protected]"; 
     $mail ->Password = "accountsamplepassword"; 
     $mail ->SetFrom("[email protected]"); 
     $mail ->Subject = $mailSub; 
     $mail ->Body = $mailMsg; 
     $mail ->AddAddress($mailto); 
     $mail->AddAttachment('pdf_files/', 'reservation.pdf'); 


     if(!$mail->Send()) 
     { 
      echo "Mail Not Sent"; 
     } 
     else 
     { 
      echo "Mail Sent"; 
     } 

    ?> 

請幫我與我的問題,謝謝!

+1

如果這是你使用真正的密碼,然後親切地改變它儘快。進一步說明確切的問題以及您面對的問題 –

+0

更改有問題的密碼無法看到編輯歷史記錄。所以,您需要更改您的帳戶密碼! Bummer:| –

+0

哈哈哈哈哈哈哈,沒事。該帳戶不是一個合法的帳戶,我用它虛擬測試:) –

回答

1

此行不會做你所期望

$mail->AddAttachment('pdf_files/', 'reservation.pdf'); 

它試圖找到一個名爲「pdf_files /」,並希望將其添加。然而,正如你現在想象的那樣,這不是一個合適的文件名。 AddAttachment的第一個參數是文件的路徑(即包含文件的文件名),第二個參數是文件名,在電子郵件中顯示爲,該文件應該如何被調用/命名,所以你可以以不同的方式調用它,而無需重命名原始文件。

所以上面的行也許應該閱讀:

$mail->AddAttachment('pdf_files/reservation.pdf', 'reservation.pdf'); 
+0

這個怎麼樣? –

+0

$ mail - > AddAttachment('pdf_files /'。$ _POST ['pdf_name'],'reservation.pdf'); –

+1

@LapizStone聽起來像個不好主意。你真的會想要清理你的輸入,因爲有人可以發佈'「../../ config.php」或其他東西,並且一找到你所有的服務器密碼(或者至少一些數據庫密碼)配置文件這種方式。 – Jakumi