簡體   English   中英

電子郵件不是使用php發送的

[英]Email is not sending using php

我使用以下代碼將附件發送到電子郵件...但我無法收到電子郵件..

我能夠收到成功發送郵件的消息,如“已發送郵件”,但電子郵件不會轉到相應的郵件ID。

我不在哪里做錯了....

這是php文件...

             <?php

   if(isset ($_POST["send"]))
   {
        $upload_name=$_FILES["upload"]["name"];
        $upload_type=$_FILES["upload"]["type"];
        $upload_size=$_FILES["upload"]["size"];
        $upload_temp=$_FILES["upload"]["tmp_name"];
        $message=$_POST["msg"];
        $subject = $_POST["subject"];
        $to=$_POST["to"];


     if($message==""||$subject==""||$to=="")
    {
       echo '<font style="font-family:Verdana, Arial; font-size:11px; color:#F3363F; font-weight:bold">Please fill all fields</font>';
     }
    else
    {
    $fp = fopen($upload_temp, "rb");
     $file = fread($fp, $upload_size);

     $file = chunk_split(base64_encode($file));
    $num = md5(time());

//正常標題

     $headers  = "From: Info Mail<Info@example.com>\r\n";
   $headers  .= "MIME-Version: 1.0\r\n";
   $headers  .= "Content-Type: multipart/mixed; ";
   $headers  .= "boundary=".$num."\r\n";
   $headers  .= "--$num\r\n";

//這兩個步驟有助於避免垃圾郵件

       $headers .= "Message-ID: <".gettimeofday()."     TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
      $headers .= "X-Mailer: PHP v".phpversion()."\r\n";

//留言

   $headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
   $headers .= "Content-Transfer-Encoding: 8bit\r\n";
   $headers .= "".$message."\n";
   $headers .= "--".$num."\n";

//附件標題

   $headers  .= "Content-Type:".$upload_type." ";
   $headers  .= "name=\"".$upload_name."\"r\n";
   $headers  .= "Content-Transfer-Encoding: base64\r\n";
   $headers  .= "Content-Disposition: attachment; ";
   $headers  .= "filename=\"".$upload_name."\"\r\n\n";
   $headers  .= "".$file."\r\n";
   $headers  .= "--".$num."--";

// 發送郵件

   mail($to, $subject, $message, $headers);


 fclose($fp);

echo '<font style="color:#333333">Mail sent please check inbox and spam both <br /></font>';
   }
  }

 ?>

//表單詳細信息和添加附件的HTML代碼

          <form id="attach" name="attach" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>" enctype="multipart/form-data">
            //Html code for mail details
           </form>

我收到“警告:郵件()[function.mail]:錯誤的參數mail()函數,郵件未發送....”它也顯示“郵件發送請檢查收件箱和垃圾郵件”..什么是問題 ?

幫我解決這個問題......

您將錯誤數據傳遞給郵件功能。 轉到http://php.net/manual/en/function.mail.php並閱讀告訴您如何使用它的文檔。

另請注意,它返回一個布爾值,告訴您您的郵件嘗試是否成功,所以至少:

....
$success = mail(...);
if ($success) {
  echo "<p>mail sent</p>";
} else {
  echo "<p>error: mail was not sent.</p>";
}

這樣你的代碼就不會說是否發送了郵件。

至於你的大量數據:全部評論。 然后逐步取消注釋位,直到它中斷。 您現在已經找到了問題,可以通過查看您提供的不喜歡的mail()函數來解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM