【问题标题】:php mail() from godaddy server来自godaddy服务器的php mail()
【发布时间】:2011-06-18 11:15:56
【问题描述】:

我正在使用 godaddy 来托管我的网站并使用默认的 godaddy 邮件服务。 现在我想使用 php 邮件功能从我的 Godaddy 电子邮件帐户的 15 个电子邮件地址中的 1 个发送电子邮件到其他电子邮件地址

我该如何解决从哪个电子邮件地址发送电子邮件以及如何放置电子邮件地址的用户名和密码?

谢谢

【问题讨论】:

    标签: php email


    【解决方案1】:

    PHP mail 函数使用为该虚拟主机配置的邮件服务器。你无法改变这一点。由于 godaddy 控制着邮件服务器,因此他们控制着它发送的标头。您可以尝试插入自定义 From 标头,但我怀疑这会起作用。它将被修改、标记为垃圾邮件或被拒绝。

    如果您在 godaddy 拥有 15 个帐户,也许是时候寻找更严肃的托管解决方案了?

    【讨论】:

    • 所以这是否意味着你离开了空域并让老爹来处理它?他们的支持信息是个笑话,它告诉我 from 字段不能是 @gmail、hotmail、yahoo、msn 等。所以如果我把它留空,它应该可以工作吗?
    • 我讨厌老爹! xD
    【解决方案2】:

    不要使用 mail() 函数,它只是调用操作系统的邮件函数(即 sendmail),试试 SwiftMail(免费的 PHP 邮件库)之类的东西。它支持多种不同的发送邮件方式,包括登录邮件帐户和发送电子邮件,就像您在自己的计算机上一样。如果需要,您甚至可以从 gmail 帐户发送电子邮件。

    http://swiftmailer.org/

    【讨论】:

    • 它需要php 7,还有一些共享主机只提供php 5
    • 这个答案是完全错误的。它不会起作用,因为 GoDaddy 会阻止与外部 SMTP 服务器的连接,而且再多的切换库也无济于事。您必须通过本地邮件服务器发送,然后通过 GoDaddy 的服务器进行中继,或者通过 SMTP 直接通过他们的服务器发送。您绝对不能在 GoDaddy 主机上使用 swiftmailer(或任何其他库)通过 gmail 发送。
    • 请看发帖日期。这种方法在 2011 年有效。
    【解决方案3】:

    我正在使用 Godaddy 托管。只需将一些字段留空并发送邮件即可。 请看下面的代码它对我有用。

    <?php
    include("class.phpmailer.php");
    function sendMail($address,$username,$body){
                $mail = new PHPMailer();
                $mail->IsSMTP(); // telling the class to use SMTP
                //$mail->Host       = "smtp.gmail.com"; // SMTP server
                $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
                                    // 1 = errors and messages
                                                                               // 2 = messages only
                // $mail->SMTPAuth   = true;                  // enable SMTP authentication
                // $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
                // $mail->Host       = "smtp.gmail.com";      // sets  as the SMTP server
                // $mail->Port       = 465;                   // set the SMTP port for the server
                // $mail->Username   = "xyz@gmail.com";  // username
                // $mail->Password   = "test121232";            // password
    
                $mail->SetFrom('contact@example.co.in', 'Contact');
    
                $mail->Subject    = "Enquiry for tour and travels package";
    
    
    
                $mail->MsgHTML($body);
    
                $address = $address;
                $mail->AddAddress($address, $username);
                $mail->AddCC('contact@example.co.in');
    
                if(!$mail->Send()) {
                echo "Mailer Error: " . $mail->ErrorInfo;
                } else {
                echo "Message sent!";
                }
    }
    
    ?>
    

    刚刚改了邮箱地址,所以你可以通过这个邮箱地址发送邮件。

    $mail->SetFrom('youremail@example.co.in', 'Contact');
    

    【讨论】:

      【解决方案4】:

      我在几个客户帐户上遇到过这个问题。 在玩了很多之后,我发现你使用什么电子邮件应用程序或代码并不重要。 我终于比较了两个帐户。一种我知道电子邮件是从 PHP 发送的,另一种是我不知道的。我发现的区别是:

      工作帐户在域中有这 2 个 dns 条目:

      • CNAME/邮件/@
      • MX/@/mail.yourdomainname.com

      以及在CPanel区域编辑器中设置的MX条目:

      • 目的地:yourdomainname.com

      不工作的帐户是相同的,只是它没有上面提到的 CNAME 条目。我添加了它,等了几分钟,再次测试了我的代码,我终于开始收到来自我的代码的电子邮件!

      【讨论】:

        猜你喜欢
        • 2016-12-11
        • 2014-04-27
        • 2012-01-09
        • 2012-09-22
        • 2021-12-20
        • 1970-01-01
        • 2020-04-12
        • 2017-05-22
        • 2012-08-10
        相关资源
        最近更新 更多