2012-05-04 58 views
0

這裏有一個PHP代碼,我用它來測試我的一個表單的電子郵件發送。雖然它運行良好,但由於某種原因,它會將 @ localhost.mydomain.com附加到發件人的電子郵件地址。以下是一個示例:PHP將localhost添加到正在發送的電子郵件中

From: James <[email protected]@localhost.mydomain.com> 

下面是以下完整代碼。

<?php 
     $email = sqlEscape($_POST['email']); 
     $name = sqlEscape($_POST['name']); 
     $to = '[email protected]'; 
     $subject = 'Email From website'; 
     $message = 'The message here'; 

     $headers = 'From: "'.$name.'" <"'.$email.'">' . "\n"; 
     $headers .= 'MIME-Version: 1.0' . "\n"; 
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n"; 

     if(mail($to, $subject, $message, $headers)){        

      echo('Message sent successfully');      
     }else{ 
      echo('<a href="contact.php">Click here</a> to try again.');  
     } 
?> 

有沒有辦法讓它不要追加它?謝謝

+0

你有沒有嘗試'sqlEscape()'? – Leri

+0

爲什麼你sqlEscape的東西不會進入任何形式的sql – Anigel

+2

在發送之前'$ email'的值是什麼?你使用什麼SMTP服務?您的SMTP服務器可能會有一個策略,將實際的出站域添加到中繼地址的From頭中。 –

回答

0

你試過了嗎: ini_set(sendmail_from,$_POST['email']);

在mail()函數調用之前添加此行。

+0

這僅適用於Windows。 OP在Ubuntu上。 –

+0

啊,我沒有意識到,當我發佈。我發現另一個論壇帖子:http://serverfault.com/questions/119105/setup-ubuntu-server-to-send-mail#answer-289290 –

+0

謝謝馬克,我會檢查出來。 –

相關問題