如何将smtp发送功能添加到我的应用程序中

时间:2011-02-16 18:56:10

标签: c# email smtp smtplib

我有一个自定义的c#app。有没有办法我可以发送没有smtp服务器的电子邮件。即拥有一个可以模拟smtp功能并向外部电子邮件发送电子邮件的库。

2 个答案:

答案 0 :(得分:3)

虽然您可以编写自己的SMTP协议实现,以便实际上充当自己的SMTP服务器(甚至不难),但您仍然必须与其他SMTP服务器(即收件人的服务器)进行交互。在过去10年左右的时间里,很多服务器已经变得不那么信任他们会与谁交谈。许多人会进行反向DNS查询,以查看您发送的IP地址是否与您域名的MX记录中列出的IP地址相同。如果它们不匹配,服务器将拒绝接受您的邮件。

此外,许多ISP已阻止端口25(由SMTP使用),因此除非通过SMTP服务器,否则无法从其网络发送电子邮件。这可以防止客户使用他们的家庭高速连接发送垃圾邮件。 (至少,这会让事情变得更加困难。)

因此,您的问题的答案在技术上是肯定的:您可以编写类似SMTP客户端的代码来发送邮件。但在实际应用中,由于ISP和接收方ISP的SMTP服务器的限制,这变得更加困难。

如果您对编写SMTP代码感兴趣,可能会发现以下指导:

答案 1 :(得分:1)

您可以使用亚马逊的简单电子邮件服务(http://aws.amazon.com/ses/)。它为您提供发送电子邮件(小批量或大量)的API和API。

该服务不是免费的,但它非常便宜(每1000封电子邮件0.10美元)。大多数亚马逊云服务都有免费套餐,但只有在您从EC2实例发送电子邮件时才适用(很可能不是您的情况......)。

此外,它还为您提供有关可传递性的统计信息,并保证您不会被标记为垃圾邮件(除非您正在做的事情:)