使用mail()函数从localhost发送邮件

时间:2013-06-30 18:22:48

标签: php

我在Windows 7上使用Xampp,我正在尝试使用php mail()函数向我的Gmail发送邮件。 (不使用像 Phpmailer这样的库)

我尝试过使用:

  1. Mercury Mail - 脚本未显示任何错误,mail()函数实际返回true

  2. Test Mail Server Tool - 与水银邮件相同的问题

  3. Fake Send mail - 收到“连接超时”错误。

  4. 这些是我的假发送邮件设置:

    sendmail.ini

    smtp_server=smtp.gmail.com
    smtp_port=587  (tried using 465)
    error_logfile=error.log
    debug_logfile=debug.log
    auth_username=fromname@gmail.com
    auth_password=pass
    

    的php.ini

    sendmail_path = "\"E:\xampp\sendmail\sendmail.exe\" -t" has been commented out
    

    这是我的代码:

    <?php
    
    $to      = 'toname@gmail.com';
    $subject = 'the the';
    $message = 'hello';
    $headers = 'From: fromname@gmail.com' . "\r\n" .
        'Reply-To: fromname@gmail.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();
    
    mail($to, $subject, $message, $headers);
    ?>
    

    这是telnet smtp.gmail.com 587的结果:

    220 mx.google.com ESMTP sb3sm19649093pac.14 - gsmtp
    451 4.4.2 Timeout - closing connection. sb3sm19649093pac.14 - gsmtp
    Connection to host lost.
    

    我在这个论坛上遇到了类似的问题,但它仍然不适合我。

    我在这里缺少的是什么,你能否提供我应该尝试的其他任何工具的链接?感谢..

1 个答案:

答案 0 :(得分:0)

您不应该使用mail命令,它在Windows上非常不稳定,实际上甚至不应该在Linux上使用。您应该使用PHPMailer Class类的Worx PHPMailerLite。这将连接到SMTP服务器。

它为您提供了许多额外的选择。你应该为自己的缘故尝试实现PHPMailer类!