12

我的 VPS 提供商 (Slicehost) 不提供 SMTP 服务器。我使用 Google Apps 为我的域发送和接收邮件,但我希望能够以编程方式发送电子邮件。

我已经断断续续地在谷歌上搜索这个问题好几个月了,但我似乎无法清楚地了解我需要做什么。我只需要像后缀这样的 MTA 吗?我将其配置为“卫星”还是“互联网”站点?我需要进行任何 DNS 更改吗?如果有一天我想以编程方式接收电子邮件,是否有任何配置选项我应该小心修改?另外,如果我的 VPS 主机确实提供了 SMTP 服务器,我现在不需要做什么?

谢谢!

编辑:我的发现的快速概要:

  • 更新/etc/hosts/etc/hostname反映 FQDN(例如,mail.domain.comsub.domain.com代替slicename
    • 重新启动并验证hostname -f
  • 设置反向 DNS(由拥有 IP 池的人所有)指向同一个 FQDN
    • 检查 RDNS 是否已通过dig -x server.ip.address
  • sudo aptitude install postfix telnet mailx
    • 使用互联网站点设置
    • 将 FQDN 设置为上面选择的任何内容
  • 测试mail whateveryouremailis@gmail.com
4

4 回答 4

3

你看过这里吗,在我看来,有很多信息可以开始。我发现mail-server-slice-setup信息量很大。

于 2008-10-13T07:53:42.083 回答
2

根据我的经验,当电子邮件提供商检查垃圾邮件时,他们会检查除内容之外的 5 项主要内容:(当我说域时,我指的是发件人电子邮件地址的域。)

  1. 域名的“A”记录(IP)存在
  2. 域名的MX记录存在
  3. 发件人IP地址的PTR记录(反向查找)是否存在(有时我想也是检查一下PTR记录是否与原域相同的A记录)
  4. 该域的 SPF 记录与 IP 号码匹配(这是允许发送该域电子邮件的 IP 号码列表。虽然这对于垃圾邮件过滤来说是一个很好的解决方案,但这不是官方记录,因此并不总是检查。查看 SPF 设置向导。
  5. 服务器的IP段不是黑名单段。

第五个对我来说是个问题。显然,Hotmail、Gmail、Yahoo 等电子邮件提供商会丢弃来自广泛使用的服务器提供商(例如 Amazon EC2)的所有传入电子邮件。在这种情况下,根本无法保证所有外发电子邮件的传送,因此您必须中继来自黑名单段之外的其他 SMTP 服务器的所有外发电子邮件。执行此操作的最简单方法是将 Postfix(或您使用的任何 MTA)配置为自动中继所有电子邮件。如果您进行一些谷歌搜索,您可以找到很多关于此的文章。

如果不是这种情况,那么您只需要一个像 Postfix 这样的简单 MTA,只要正确配置了上面列出的所有必要的 DNS 记录,您发送电子邮件就应该没有问题。

于 2008-10-13T21:09:00.293 回答
1

其他答案提供了有关发送电子邮件机制的信息,但您需要考虑的一件事是您将使用哪个发件人地址,以及您将如何处理退回邮件。

假设您从 sender@example.com 发送电子邮件;然后(正如 Murat Ayfer 指出的),您需要确保您的主机被允许根据 example.com 的 SPF 记录发送邮件。(这可能由 IP 地址配置,也可能不配置——有关详细信息,请参阅SPF 站点。)如果您负责 example.com 域,那么这应该不是问题。被列为该域的可接受发件人是您的电子邮件通过的重要一步。

您需要担心的下一件事是如何处理退回的电子邮件。如果其他主机收到 example.com 的电子邮件(即 MX 记录指向其他地方),则主要是其他人的问题。(但是请注意,您的应用程序必须准备好在与主机上的邮件服务器的 SMTP 会话期间失败,例如,由于语法无效的电子邮件地址。)但是,如果您决定您将在您的主机,那么您需要担心处理重试邮件、退回邮件、双重退回邮件以及许多其他常规邮件服务器管理。有一些关于在 Web 应用程序中处理未送达电子邮件的信息可能会有所帮助,但我也建议获得一本关于 Postfix 或您决定使用的任何邮件服务器的好书。

于 2008-10-13T22:07:02.283 回答
0

只需将 postfix 之类的东西安装为“互联网站点”,您就可以直接从您的 VPS 发送邮件

它应该使用默认设置,但建议您也阅读一些文档/操作方法以正确保护它

于 2008-10-13T08:16:46.200 回答