【问题标题】:Send email from GoDaddy Server using PHP or PHPMailer使用 PHP 或 PHPMailer 从 GoDaddy 服务器发送电子邮件
【发布时间】:2020-09-22 19:39:00
【问题描述】:

我想让我的网站用户能够发送电子邮件。 我使用 PHP,我的主机是 GoDaddy。我认为 PHPMailer 是最好的选择。 我认为我的问题是尝试连接到 GoDaddy 的 PHPMailer。 我应该使用另一个 PHPMailer 吗?

我的代码基于您网站上应该可以工作的示例。 看来这些行: require_once "PHPMailerAutoload.php"; $mail = 新的 PHPMailer; //PHPMailer 对象 防止后续代码工作。 请帮忙。

<?php
    if(isset($_POST['send'])){
        echo "Sending";
        require_once "PHPMailerAutoload.php";
        $mail = new PHPMailer; //PHPMailer Object
        $mail->setFrom('sender@example.com', 'Rob');
       // $mail->addAddress("my godaddy webmail"); //Recipient name is optional
       echo "still Sending";
       $mail->addAddress("recipient@example.com"); //Recipient name is optional
        //Send HTML or Plain Text email
        $mail->isHTML(true);
        $mail->Subject = "Email Test";
        $mail->Body = "<i>This is a text</i>";
        $mail->AltBody = "This is the plain text version of the email content";
        if(!$mail->send()) {
            echo "Mailer Error: " . $mail->ErrorInfo;
        } else {
            echo "Message has been sent successfully";
        }        
    }`enter code here`
?>
<form  method="post">
    <input type="submit" name="send" value="Send">
</form>

【问题讨论】:

  • 你有installed PHPMailer吗?
  • 哦,欢迎来到 StackOverflow! :) 我猜你不熟悉composer。如果您现在不想学习所有这些,PHP Mailer 似乎有在没有 composer 的情况下安装的说明,您只需将几个文件复制到您的服务器上并直接require(...)它们。

标签: php email phpmailer


【解决方案1】:

几乎所有虚拟主机服务器都被禁止发送邮件,因为它们被放置在email blacklist 上。正如您可能想象的那样,这是为了防止垃圾邮件发送者简单地启动新的虚拟服务器并发送大量垃圾邮件。这是对整个互联网的必要保护。

重要的是要认识到,如果您的本地服务器接受了外发邮件消息,PHP mail() 函数只会返回 TRUE。这只是意味着在您的服务器上运行的本地软件告诉 PHP 它会尝试发送电子邮件。 这绝不保证邮件在所有可能最终处理此邮件的邮件服务器看来都是合法的。如果您以这种方式发送邮件,您的邮件通常不太可能被递送。 p>

在这种情况下,您需要您的 PHP 代码通过某个不在电子邮件黑名单上的服务器发送其外发电子邮件。有多种邮件发送服务,如 SendGrid、MailChimp、Amazon SES 等,提供 SMTP 访问。即,您使用 SMTP 协议连接到他们的服务器并以这种方式发送您的邮件。 PHPMailer readme 可能是一个很好的起点,它有一个示例脚本,可以连接到 SMTP 服务器以发送外发邮件。诀窍是获得正确的用户名、密码、端口和 SMTP 设置——这往往会因您用于传递邮件的人员而异。

如果您的邮件量足够小,您可能只需使用普通的旧 gmail 帐户即可。

同样重要的是要认识到,仅使用 PHPMailer 发送电子邮件本身并不足以确保邮件被送达。在邮件系统上运行的现代垃圾邮件过滤器利用大量现代的联锁方案来检查邮件消息是否合法。

除了 PHPMailer 步骤之外,您可能还需要在您的域上设置 SPF 记录,可能还需要设置 DKIM 和 DMARC 凭据 - 这些是现代方案,用于向其他机器发送电报,表明您的服务器是合法来源电子邮件。

SPF 非常简单,涉及为您的域创建 DNS 记录,将您的服务器标识为有效的邮件来源。

DKIMDMARC 涉及更多,但可以显着提高您的邮件传递率。

【讨论】:

  • 附带说明,没有正确(或根本没有)设置 SPF 的已建立网络域/邮件程序的数量是疯狂的。我想知道广大开发人员是否知道它的存在!
  • 好答案。使用像 GoDaddy 这样的低规格主机的另一个问题是,通过强制您使用他们的邮件服务器(请参阅the PHPMailer troubleshooting guide about that),不可能从 gmail 和 yahoo(或任何使用他们服务器的域)等域中的地址发送邮件,因为他们自己的 DMARC 政策阻止它。我想说最好的解决方案是不要使用 GoDaddy!
猜你喜欢
  • 2016-12-11
  • 2021-07-16
  • 1970-01-01
  • 1970-01-01
  • 2021-04-19
  • 2018-01-10
  • 1970-01-01
  • 2021-10-01
相关资源
最近更新 更多