2011-08-07 73 views
1

我在專用服務器(OVH Kimsufi,Debian 6.0 stable)中運行這個PHP腳本。PHP郵件不發送任何東西

<?php 
$msg = "coucou les amis"; 
$sub = "test"; 
$head = 'From: [email protected]' . "\r\n" . 'Reply-To: [email protected]' . "\r\n"; 
echo mail("[email protected]", $msg, $msg, $head); 
?> 

郵件退回1但電子郵件從未收到...如何解決它?

+1

您驗證了此垃圾郵件框? –

+1

'example.com'實際上是否正在運行(=解析爲)您發送電子郵件的服務器? –

+0

這看起來像垃圾郵件到任何過濾器,只使用有效的電子郵件,並應至少匹配您爲帳戶設置的一封電子郵件,否則您的服務器可能不會從它的假脫機發送它。還要注意在你的例子中'$ msg'也被用作主題。 –

回答

1

問題是exim(= sendmail)的默認配置。它不允許直接SMTP發送(僅限本地)。

# dpkg-reconfigure exim4-config 
2

重要的是要注意,僅僅因爲郵件被接受交付,並不意味着郵件實際上會到達預期的目的地。

PHP發送了此消息。無論它是否到達目的地,都不受PHP的控制。

1

這取決於你的服務器的服務器是否允許您使用PHP或不

+0

我認爲它應該如何檢查? – Torgal

+0

@torgal聯繫您的服務器中心 – rohit

+0

我做到了,我在等待答案。 – Torgal

0

你犯了一個錯誤,並代替$sub是在需要受到作爲參數的mail()函數中使用$msg發送郵件。

$msg = "coucou les amis"; 
$sub = "test"; 
$head = 'From: [email protected]' . "\r\n" . 'Reply-To: [email protected]' . "\r\n"; 
echo mail("[email protected]", $sub, $msg, $head); 
+0

Thx但它不會改變任何東西... – Torgal

1

有很多錯誤。例如,您是否使用Sendmail。也許你應該檢查那些可能位於的日誌。

cat /var/log/mail.log 

或者,也許您的電子郵件確實發送,但會在垃圾郵件文件夾中發送?

我會建議你外包發送電子郵件,例如使用Sendgrid。每天發送少於200封電子郵件時,Sendgrid是免費的。

+0

/var/log/mail.*是空的。 – Torgal

+0

您使用Sendmail嗎? – Alfred

0

修復holodoc的帖子中描述的問題後,你應該考慮擺脫mail(),這是不可靠的。