我在这里阅读了一些线程,有人设法使用 gmail 的 smtp 服务器从 php 脚本发送消息。
所以如果 php 向 [email protected] 发送邮件,它看起来像这样:
备选方案 1:
- php 告诉 sendmail(smtp 服务器)发送消息
- sendmail 将邮件发送到 gmail 的 smtp 服务器
- gmail 的 smtp 服务器将消息发送到 hotmail 的 smtp 服务器
所以现在我想知道,为什么要使用 gmail 的 smtp 服务器来发送邮件?将消息从sendmail 发送到hotmail 的smtp 服务器不是更好吗?
备选方案 2:
- php 告诉发送到本地 sendmail
- sendmail 发送到 hotmail 的 smtp 服务器
备选方案 3:
- php 将消息发送到 gmail 的 smtp 服务器
- gmail 的 smtp 服务器发送到 hotmail 的 smtp 服务器。
备选方案 4:
- php 将消息发送到 hotmail 的 smtp 服务器。(为什么这不起作用?为什么有一个中间 smtp 服务器(实际上就像一个纯客户端)发送到另一个 smtp 服务器?
如果我错了,请纠正我,但发送邮件所需要的不仅仅是两个 smtp 服务器、发送者和接收者(在本例中为 hotmail)之间的通信吗?
我仍然看不到这里的图片以及发送邮件所发生的/需要的事情。我知道 MTA 和 MDA 是什么。但是没有人清楚地解释这一点,因此人们可以了解这一切是如何运作的。
如果有人能阐明这个令人困惑的领域,那就太好了!
我猜它的设置不像你说的那样。而是使用 PHP SMTP 库而不使用 sendmail。为此,您将登录信息放入 gmail 帐户的 php 中,它将直接与其通信。我想你可以让 sendmail 使用 gmail 作为智能主机,以便它中继电子邮件,但是 PHP 库对我来说更有意义,除非你有很多不同的 PHP 应用程序。
如果不是这样(不需要身份验证),gmail 将运行所谓的开放中继,垃圾邮件发送者将使用该中继向人们发送大量垃圾邮件。
使用 gmail 而不是 sendmail 本身与 hotmail 通信的原因是因为您不必处理运行电子邮件服务器的问题。他们将确保允许 gmail 用户将邮件发送到诸如 hotmail 之类的地方,而不会将其标记为垃圾邮件。如果您自己运行发送邮件,您将不得不自己完成所有这些工作。
最后,它被称为 SMTP 服务器(简单邮件传输协议)服务器,因为它就是这样做的,它在服务器之间传输电子邮件(发送和接收,但不存储)。这称为 MTA(邮件传输代理)。存储并让电子邮件获取电子邮件的是 MDA(类似于 fetchmail)。您可以将 MTA 视为邮局,将 MDA 视为您的邮箱。以下是电子邮件在维基百科上的工作方式的概述。