【问题标题】:Sending Email by PHPmailer without SMTP通过没有 SMTP 的 PHPmailer 发送电子邮件
【发布时间】:2019-03-13 01:42:34
【问题描述】:

我知道我们可以使用 PHPMailer 来发送电子邮件而无需 SMTP。但是我还是不明白它是怎么配置的。

1/ 我们可以将任何内容设置为“电子邮件发件人”吗?如果是这样,那么任何人都可以伪造一个电子邮件地址并将其发送给任何人吗?如果不是,条件是什么?

2/ Web 服务器必须具备哪些基本配置才能使其工作。

对不起,我的愚蠢问题。

   <?php

        $mail = new PHPMailer(true);

       //Typical mail data
       $mail->AddAddress($email, $name);
       $mail->SetFrom("britney@britneyspears.com", "Britney Spears");
       $mail->Subject = "My Subject";
       $mail->Body = "Mail contents";

       try{
         $mail->Send();
         echo "Success!";
       } catch(Exception $e){
         //Something went bad
         echo "Fail - " . $mail->ErrorInfo;
       }

?>

【问题讨论】:

    标签: phpmailer


    【解决方案1】:

    我不熟悉。

    看。 https://github.com/PHPMailer/PHPMailer

    1/ 我们可以将任何内容设置为“电子邮件发件人”吗?

    您可以使用 setFrom 。 (https://github.com/PHPMailer/PHPMailer#a-simple-example)

    $mail->setFrom('from@example.com', 'Mailer');
    

    如果是这样,那么任何人都可以伪造一个电子邮件地址并将其发送给任何人?

    呃……我认为 SMTP 服务器有错误。 PHPMailer 使用$from。也许 $from 是由 setFrom 设置的。 (https://github.com/PHPMailer/PHPMailer/blob/master/src/SMTP.php#L817)

    如果不是,条件是什么?

    如果没有设置地址,我认为会发生错误。 (https://github.com/PHPMailer/PHPMailer/blob/master/src/PHPMailer.php#L1185)

    【讨论】:

    • 您可以尝试设置一个虚假的发件人地址,但不能保证邮件服务器会接受或投递它,尤其是当它导致 SPF 失败时。有些服务完全忽略了发件人地址,并始终将其替换为您的帐户地址(您在Username 中输入的内容) - gmail 会这样做。关键是不要尝试去做。如果您正在制作联系表格,请按照 PHPMailer 提供的示例进行操作。
    猜你喜欢
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 2014-10-19
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    相关资源
    最近更新 更多