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

标签 c# email smtp smtplib

我有一个自定义的 C# 应用程序。有没有一种方法可以在没有 smtp 服务器的情况下发送电子邮件。即有一个库可以模拟 smtp 功能并将电子邮件发送到外部电子邮件。

最佳答案

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

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

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

如果您对编写 SMTP 代码感兴趣,您可能会发现以下内容很有启发性:

关于c# - 如何将 smtp 发送功能添加到我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020802/

相关文章:

c# - 如何使数据绑定(bind)控件刷新通过反射更改的属性值?

c# - Entity Framework 和自引用表

c# - 发布一个集合和 ModelState

php - mail() 在新服务器上不起作用

ssl - 我怎样才能使我的电子邮件像 PayPal 一样经过验证

c# - 休息不允许在 IIS 8.5 : error 405 中放置

允许文件附件的 C++ SMTP

java - 从 PHP 脚本返回到 java 程序的字符串无法正常工作

ssl - 在 GCP Composer Airflow 中使用 AWS SES SMTP 服务器时出现 "SSL: WRONG_VERSION_NUMBER"

email - 使用 smtp 发送电子邮件并设置 message-id