我有一个自定义的 c# 应用程序。有没有办法可以在没有 smtp 服务器的情况下发送电子邮件。即有一个库,它将模拟 smtp 功能并将电子邮件发送到外部电子邮件。
2 回答
尽管您可以编写自己的 SMTP 协议实现,从而实际上充当自己的 SMTP 服务器(甚至不难做到),但您仍然必须与其他 SMTP 服务器(即收件人的服务器)交互。在过去 10 年左右的时间里,许多服务器变得不那么信任他们将与谁交谈。许多人会进行反向 DNS 查找,以查看您发送的 IP 地址是否与您的域名的 MX 记录中列出的 IP 地址相同。如果它们不匹配,服务器将拒绝接受您的邮件。
此外,许多 ISP 已阻止端口 25(由 SMTP 使用),因此您无法从他们的网络发送电子邮件,除非通过他们的 SMTP 服务器。这可以防止客户使用他们的家庭高速连接发送垃圾邮件。(至少,它使事情变得更加困难。)
因此,您的问题的答案在技术上是肯定的:您可以编写类似于 SMTP 客户端的代码来发送邮件。但在实际应用中,由于 ISP 和接收 ISP 的 SMTP 服务器施加的限制,这变得更加困难。
如果您对编写 SMTP 代码感兴趣,您可能会发现以下内容具有指导意义:
您可以使用亚马逊的简单电子邮件服务 ( http://aws.amazon.com/ses/ )。它为您提供发送电子邮件(小批量或批量)的 API。
该服务不是免费的,但非常便宜(每 1000 封电子邮件 0.10 美元)。像大多数亚马逊云服务一样,有一个免费层,但这个层仅适用于您从 EC2 实例发送电子邮件(很可能不是您的情况......)。
此外,它还为您提供有关可交付性的统计信息,并确保您不会被标记为垃圾邮件(除非您正在这样做:)