通过smtp匿名发送电子邮件

时间:2014-01-03 18:57:17

标签: c# gmail mailmessage

我一直在尝试为我的某个应用添加支持服务,因此我决定编写一种方法,将用户反馈发送到我的个人电子邮件中。根据MSDN:

  

如果将UseDefaultCredentials属性设置为false并且尚未设置Credentials属性,则会以匿名方式将邮件发送到服务器。

但是当我将UseDefaultCredentials设置为false时,我的电子邮件中没有任何内容:

        MailMessage mail = new MailMessage("MyEmail@gmail.com", "MyEmail@gmail.com");
        SmtpClient client = new SmtpClient();
        client.Port = 25;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;
        client.Host = "smtp.google.com";
        mail.Subject = "this is a test email.";
        mail.Body = "this is my test email body";
        client.Send(mail)

我的问题是,这个问题是否与Gmail有关,或者我这样做有什么不妥。

1 个答案:

答案 0 :(得分:4)

没有更多细节,很难确定问题是什么。如果将UseDefaultCredentials设置为true,它是否有效?

使用SMTP需要注意的标准问题:

  • 大多数ISP的阻止端口25,因此除了本地服务器或特殊情况外,您不能使用非SSL / TLS SMTP。

  • 据我所知,GMail的SMTP只接受经过身份验证的登录邮件传输。

根据我的经验,使用经过身份验证的gmail帐户(带密码)和TLS(加密)连接(不是端口25)几乎可以在任何地方正常工作,但由于您没有这样的应用程序可能不适合您的应用程序用户的Gmail凭据。

如果所有这些都非常麻烦,您可以考虑采用标准替代方法,即在您自己的网站上支持您自己的基于表单的反馈提交流程,而不是通用电子邮件。