2012-06-13 19 views
1

發送電子郵件時我有一個很奇怪的問題。這可能是很簡單的修復,但我無法在網上找到任何答案。php mail()在使用phonegap和ajax時不發送標題

我在我的jQuery Mobile的應用程序的PhoneGap是AJAX(簡體):

$.ajax({ 
    url: 'http://mysite.com/ajax/app/email.php', 
    type: "POST", 
    dataType: "text", 
    data: { 
     email: $('#email').val(), 
    }, 
    success: function(data) { 
     alert('done!') 
    } 
}); 

我email.php文件中的代碼是(再次,簡化):

<?php 
$email = $_POST['email']; 
$headers = 'From: MySite <[email protected]>' . "\r\n" . 
    'Reply-To: MySite <[email protected]>' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 
$msg = "Welcome to MySite!"; 
@mail($email, 'Hello', $msg, $headers); 

電子郵件來通過很好,但不是來自[email protected],它來自[email protected]。當我從存儲在與email.php腳本相同的服務器上的HTML5應用運行相同的ajax查詢時,電子郵件來自正確的電子郵件地址。

任何想法?我列出了myserver +所有子域名 - 我想不出還有什麼要做。

+0

首先嚐試@mail($ email,'Hello',$ msg,$ headers,'[email protected]');'看看這是否有效。 – drew010

+0

完美!我添加了第五個參數並將安全模式設置爲關閉以允許它(我有一個仍然使用安全模式的可怕主機...)Cheers pal – whizzkid

+0

非常好,我將它添加爲一個答案,所以如果你得到一個機會,你可以接受它。謝謝! – drew010

回答

1

嘗試將您的電子郵件地址與-f標誌通過第五個參數傳遞給mail()。這將有助於MTA知道將哪個地址用作信封發件人。

看是否有此代碼的工作:

mail($email, 'Hello', $msg, $headers, '[email protected]'); 

The Exim Command Line請參閱郵件鏈接上面的PHP mail()函數的信息,也搜索-f從進出口文件。

如果在PHP版本中啓用它,則需要禁用safe_mode