AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 129453
Accepted
ajsie
ajsie
Asked: 2010-04-06 09:25:56 +0800 CST2010-04-06 09:25:56 +0800 CST 2010-04-06 09:25:56 +0800 CST

使用 gmail 从您的 php 发送邮件?

  • 772

我在这里阅读了一些线程,有人设法使用 gmail 的 smtp 服务器从 php 脚本发送消息。

所以如果 php 向 [email protected] 发送邮件,它看起来像这样:

备选方案 1:

  1. php 告诉 sendmail(smtp 服务器)发送消息
  2. sendmail 将邮件发送到 gmail 的 smtp 服务器
  3. gmail 的 smtp 服务器将消息发送到 hotmail 的 smtp 服务器

所以现在我想知道,为什么要使用 gmail 的 smtp 服务器来发送邮件?将消息从sendmail 发送到hotmail 的smtp 服务器不是更好吗?

备选方案 2:

  1. php 告诉发送到本地 sendmail
  2. sendmail 发送到 hotmail 的 smtp 服务器

备选方案 3:

  1. php 将消息发送到 gmail 的 smtp 服务器
  2. gmail 的 smtp 服务器发送到 hotmail 的 smtp 服务器。

备选方案 4:

  1. php 将消息发送到 hotmail 的 smtp 服务器。(为什么这不起作用?为什么有一个中间 smtp 服务器(实际上就像一个纯客户端)发送到另一个 smtp 服务器?

如果我错了,请纠正我,但发送邮件所需要的不仅仅是两个 smtp 服务器、发送者和接收者(在本例中为 hotmail)之间的通信吗?

我仍然看不到这里的图片以及发送邮件所发生的/需要的事情。我知道 MTA 和 MDA 是什么。但是没有人清楚地解释这一点,因此人们可以了解这一切是如何运作的。

如果有人能阐明这个令人困惑的领域,那就太好了!

php email smtp gmail
  • 1 1 个回答
  • 1440 Views

1 个回答

  • Voted
  1. Best Answer
    Kyle Brandt
    2010-04-06T09:48:17+08:002010-04-06T09:48:17+08:00

    我猜它的设置不像你说的那样。而是使用 PHP SMTP 库而不使用 sendmail。为此,您将登录信息放入 gmail 帐户的 php 中,它将直接与其通信。我想你可以让 sendmail 使用 gmail 作为智能主机,以便它中继电子邮件,但是 PHP 库对我来说更有意义,除非你有很多不同的 PHP 应用程序。

    如果不是这样(不需要身份验证),gmail 将运行所谓的开放中继,垃圾邮件发送者将使用该中继向人们发送大量垃圾邮件。

    使用 gmail 而不是 sendmail 本身与 hotmail 通信的原因是因为您不必处理运行电子邮件服务器的问题。他们将确保允许 gmail 用户将邮件发送到诸如 hotmail 之类的地方,而不会将其标记为垃圾邮件。如果您自己运行发送邮件,您将不得不自己完成所有这些工作。

    最后,它被称为 SMTP 服务器(简单邮件传输协议)服务器,因为它就是这样做的,它在服务器之间传输电子邮件(发送和接收,但不存储)。这称为 MTA(邮件传输代理)。存储并让电子邮件获取电子邮件的是 MDA(类似于 fetchmail)。您可以将 MTA 视为邮局,将 MDA 视为您的邮箱。以下是电子邮件在维基百科上的工作方式的概述。

    • 1

相关问题

  • 针对大量邮件的 SMTP 服务的建议 [关闭]

  • 多操作系统环境的首选电子邮件客户端

  • mod_rewrite 不转发 GET 参数

  • Exchange 2007 的备份解决方案

  • 更改 PHP 的默认配置设置?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve