【问题标题】:Sending an anonymous email to my own address向我自己的地址发送匿名电子邮件
【发布时间】:2014-06-02 11:36:10
【问题描述】:

我想向我自己的 gmail/hotmail/yahoo/任何其他邮件服务地址发送一封匿名电子邮件(我不是想发送垃圾邮件或类似的东西)。

为什么?我有一个 .NET 应用程序,我想使用 SmtpClient 添加“向开发人员发送日志”功能(附加日志)。事实上,我已经阅读了 30 多页,并发现,即 gmail 的 smtp 客户端不允许匿名连接以及许多其他事情。

这个想法是接收这样的邮件消息:

From: logs@myapp.com (non-existent email really)

To: myrealaddress@somedomain.com (this would be my real address which will recieve the logs attachments)

Subject: Issue report nºX (auto-generated)

Body: From a textbox

Attachments: logs attached

这可能吗?如果是这样,我该如何实现?

【问题讨论】:

  • 如果只是发给自己,为什么一定要匿名?
  • 我已经在我的应用程序中做到了这一点。诀窍是拥有一个电子邮件服务器,该服务器将接受您的邮件以转发到其最终目的地。我同意@GalacticCowboy,为什么必须匿名发送?
  • 因为 .net 应用程序将被许多用户使用,我不希望他们引入自己的凭据和 smtp 服务器和端口。这会让他们觉得使用它不安全。
  • @N3HL - 正确 - 所以使用您的凭据和 smtp 服务器。当然,您需要确保您的凭据安全。
  • @STLDeveloper 但“发件人”将是不存在的邮件,这就是我的观点

标签: c# email smtpclient networkcredentials


【解决方案1】:

简短的回答是您无法可靠地实现这一目标。在某些情况下你可以让它工作,但不是全部。

如今,大多数电子邮件服务器都有垃圾邮件过滤器和检查电子邮件的规则,在大多数情况下,空的“发件人”地址会导致特殊处理。有时这只是意味着接收邮件服务器的垃圾邮件分数略高,但在某些情况下,一个空的“发件人”地址会导致您的电子邮件被默默地丢弃在比特桶中。您无法控制这一点,您的用户也无法控制。这完全取决于接收邮件服务器的配置方式。

最简单的选项通常是允许用户配置发件人地址和 SMTP 服务器。有些服务器需要登录才能发送消息,因此您必须考虑这一点。如果连接来自 ISP(或工作场所)拥有的地址并且电子邮件地址是注册为属于那里的电子邮件地址,则许多 ISP 邮件服务器(以及大多数内部工作场所邮件服务器)不需要登录。一些 ISP - 而且这个数字显然在增长 - 无论如何都需要 SMTP 登录才能发送邮件。

另一种选择是设置源域,配置域的 SPF 记录以允许来自任何 IP 地址的电子邮件,并在该域中使用标准的“发件人”地址。这样做的缺点是,一旦有人发现您以这种方式打开了一个域,他们就会开始使用它来发送垃圾邮件,而您将被关闭。

还有许多其他选项都有自己的问题。问题之一是它们通常需要花钱——一些设置成本,大多数选项还有持续成本——或者让您承担某种责任。

让您的用户选择。让他们尝试各种选项,看看什么对他们有用:没有“发件人”地址、用户定义的“发件人”地址(与“收件人”地址相同是一个很好的第一次尝试)、部分 SMTP 登录、完整 SMTP 登录等。如果他们对您的代码不够信任,无法输入他们的密码,让他们在 gmail 或其他东西上创建一个一次性帐户来运行邮件。

【讨论】:

    猜你喜欢
    • 2010-11-09
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 2017-03-01
    • 2012-02-15
    相关资源
    最近更新 更多