电子邮件服务的冗余

时间:2016-11-27 11:42:08

标签: php email-integration

这是一个我知道的新手问题。但是我无法找到这个问题的答案。

我制作了一些利用自动电子邮件功能的网站。我用PHP制作了这个网站。我所做的每一个网站,在邮件部分,我都遇到了一些“裁员”。让我举一个例子,来自PHPMailer库的例子:

name := gjson.Get(json, "name")
mother := gjson.Get(json, "parents.mother")

在这两个陈述中,我认为存在裁员: $mail = new PHPMailer; $mail->isSMTP(); $mail->Host = 'mail.domail.com'; $mail->SMTPAuth = true; $mail->Username = 'someuser@domain.com'; // SMTP username $mail->Password = 'secret'; $mail->Port = 587; $mail->setFrom('someuser@domain.com', 'Mailer'); $mail->addAddress('to@gmail.com', 'Joe User'); // Add a recipient $mail->isHTML(true); $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->Username = "someuser@domain.com; $mail->Password = 'secret';"。这是我的问题?如果我已经提供了用户名和密码,为什么我需要提供“发件人”地址。不要只是登录我的电子邮件帐户并发送它?如果我提供用户名,为什么还要提供“来自”地址?反之亦然。

有人可以解释为什么mailling系统会像这样工作吗?我有alson在python的标准mailling库中看到了类似的结构。

2 个答案:

答案 0 :(得分:0)

因为“from”不必与您的登录用户名相同。您可以尝试向自己发送不同值的邮件,并检查收件箱或垃圾邮件文件夹以查看结果。

答案 1 :(得分:0)

在Microsoft Exchange服务器(仅作为示例)中,当应用了正确的权限时,您可以在邮箱登录下Send As多个用户邮箱。因此,在这种情况下,如果您使用PHPMailer将邮件发送到Microsoft Exchange服务器并进行身份验证,您将使用相同的凭据来访问您的邮箱,但随后在From中指定您要发送的邮箱变量。

除上述内容外,From是当前SMTP标准(RFC 821)的一部分,在与SMTP服务器通信时使用必须。所以这意味着所有使用SMTP的邮件服务器都应该要求From字段符合此标准,尽管他们知道谁在发送电子邮件。