代码之家  ›  专栏  ›  技术社区  ›  Inception

未经身份验证发送SMTP电子邮件

  •  0
  • Inception  · 技术社区  · 6 年前

    My webhost不允许创建邮件帐户。然而,他们向我提供了他们的SMTP网关,并表示从数据中心发送邮件时不需要凭据。

    $mail->isSMTP();
    $mail->SMTPDebug    = 2;
    $mail->Host         = GATEWAY_PROVIDED_BY_HOST
    $mail->SMTPAuth     = false;
    $mail->SMTPSecure   = false;
    

    无效地址:(发件人):root@localhost

    似乎我需要添加一个发件人地址。但是,如果他们不允许创建邮件帐户,我应该在发件人地址中输入什么?

    3 回复  |  直到 6 年前
        1
  •  0
  •   coding Bott    6 年前

    尝试使用有效的发件人“发件人”电子邮件地址。

    更新: 您必须使用邮件服务器负责的发件人地址(或白名单地址)。 正常的“@domain.tld”是不够的。at前面的名称通常不经过测试。

    也有可能:您只能发送“到”邮件服务器负责的域,或者您必须进行身份验证。最好是与服务器提供商联系。

        2
  •  0
  •   Synchro    6 年前

    您需要设置发件人地址:

    $mail->setFrom('user@example.com', 'My Name');
    

    这将设置出现在消息头中的发件人地址,但它也将用作 MAIL FROM 在SMTP级别(您的错误来源)执行命令,因为它会自动复制到 Sender 适用于此处的PHPMailer属性。这将避免倒退到 root@localhost 你得到的地址。

    禁用身份验证的其他操作是正确的。

        3
  •  -3
  •   Gabor    6 年前

    创建一个谷歌账户并使用它:

    $mail->IsSMTP();
    $mail->SMTPAuth = true;
    $mail->Username = "your@gmail.com";
    $mail->Password = "*****";
    $mail->SMTPSecure = "ssl";  
    $mail->Host = "smtp.gmail.com";
    $mail->Port = "465";
    $mail->setFrom('your@gmail.com', 'Your Name');
    $mail->addReplyTo('your@gmail.com', 'Your Name');