即使邮件功能返回true,我的服务器也无法发送电子邮件

时间:2014-12-06 07:24:36

标签: php email sendmail

我正在尝试使用我的服务器发送电子邮件。我正在使用php的邮件功能。该函数返回true。但我没有收到任何电子邮件。我检查了日志。甚至日志也没有显示任何错误。我的域名是" islamerkotha.com"。我的代码如下 -

<?php

    $msg = "First line of text\nSecond line of text";
    $msg = wordwrap($msg,70);
    $headers = "From: test1@islamerkotha.com";
    mail("erfan.bashar.13@gmail.com", "My subject", $msg, $headers);

谢谢。

2 个答案:

答案 0 :(得分:0)

电子邮件路径中有许多点可能会导致您失败,但请查看PHP mail() function page;它特别指出,如果邮件被接受传递,则该函数返回true,并且注意,仅仅因为邮件被接受传递,这并不意味着邮件实际上将到达预定目的地。&# 34;

编辑:点击此处了解有关PHP error reporting的更多信息。如果您没有看到任何错误,请查看phpinfo()以查看是否已启用mail()函数。如果是,那么现在是时候开始向下游寻找......

答案 1 :(得分: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 = 'user@example.com';                 // 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 = 'from@example.com';
    $mail->FromName = 'Mailer';
    $mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
    $mail->addAddress('ellen@example.com');               // Name is optional
    $mail->addReplyTo('info@example.com', 'Information');
    $mail->addCC('cc@example.com');
    $mail->addBCC('bcc@example.com');

    $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';
    }