2014-12-06 77 views
-1

我正在嘗試向我的服務器發送電子郵件。我使用php的郵件功能。該函數返回true。但我沒有收到任何電子郵件。我檢查了日誌。甚至日誌也沒有顯示任何錯誤。我的域名是「islamerkotha.com」。我的代碼如下 -即使郵件功能正確返回,我的服務器也無法發送電子郵件

<?php 

    $msg = "First line of text\nSecond line of text"; 
    $msg = wordwrap($msg,70); 
    $headers = "From: [email protected]"; 
    mail("[email protected]", "My subject", $msg, $headers); 

謝謝。

+0

ATLEAST有禮貌地說你爲什麼試圖關閉它之前試圖關閉它的問題 – 2014-12-06 07:47:42

回答

0

沿着這條路徑有許多點,你的電子郵件可能會失敗,但請看PHP mail() function page;它特別指出,如果郵件被接受發送,該函數返回true,「重要的是要注意,僅僅因爲郵件被接受發送,並不意味着郵件實際上會到達預期的目的地。」

編輯:在這裏尋找PHP error reporting的更多信息。如果您沒有看到任何錯誤,請查看phpinfo()以查看是否啓用了mail()函數。如果是,那麼它的時候開始進一步向下游尋找...

+0

然後我怎樣才能確保電子郵件得到交付,如果不是,那麼至少得到一個錯誤信息 – 2014-12-06 07:29:05

+0

我在我上面編輯的答案回答了這個。 – John 2014-12-06 07:31:47

+0

我無法弄清楚。我回應phpinfo()。這裏的smtp值是localhost。這是否與任何事情有關? – 2014-12-06 07:46:51

0

嘗試PHP Mailer,有了這個,你並不需要有本地的SMTP服務器,你也還可以使用您的驗證

<?php 
    require 'PHPMailerAutoload.php'; 

    $mail = new PHPMailer; 

    //$mail->SMTPDebug = 3;        // Enable verbose debug output 

    $mail->isSMTP();          // Set mailer to use SMTP 
    $mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers 
    $mail->SMTPAuth = true;        // Enable SMTP authentication 
    $mail->Username = '[email protected]';     // SMTP username 
    $mail->Password = 'secret';       // SMTP password 
    $mail->SMTPSecure = 'tls';       // Enable TLS encryption, `ssl` also accepted 
    $mail->Port = 587;         // TCP port to connect to 

    $mail->From = '[email protected]'; 
    $mail->FromName = 'Mailer'; 
    $mail->addAddress('[email protected]', 'Joe User');  // Add a recipient 
    $mail->addAddress('[email protected]');    // Name is optional 
    $mail->addReplyTo('[email protected]', 'Information'); 
    $mail->addCC('[email protected]'); 
    $mail->addBCC('[email protected]'); 

    $mail->WordWrap = 50;         // Set word wrap to 50 characters 
    $mail->addAttachment('/var/tmp/file.tar.gz');   // Add attachments 
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name 
    $mail->isHTML(true);         // Set email format to HTML 

    $mail->Subject = 'Here is the subject'; 
    $mail->Body = 'This is the HTML message body <b>in bold!</b>'; 
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

    if(!$mail->send()) { 
     echo 'Message could not be sent.'; 
     echo 'Mailer Error: ' . $mail->ErrorInfo; 
    } else { 
     echo 'Message has been sent'; 
    } 
相關問題