我一直在尝试为我的某个应用添加支持服务,因此我决定编写一种方法,将用户反馈发送到我的个人电子邮件中。根据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有关,或者我这样做有什么不妥。
答案 0 :(得分:4)
没有更多细节,很难确定问题是什么。如果将UseDefaultCredentials设置为true,它是否有效?
使用SMTP需要注意的标准问题:
大多数ISP的阻止端口25,因此除了本地服务器或特殊情况外,您不能使用非SSL / TLS SMTP。
据我所知,GMail的SMTP只接受经过身份验证的登录邮件传输。
根据我的经验,使用经过身份验证的gmail帐户(带密码)和TLS(加密)连接(不是端口25)几乎可以在任何地方正常工作,但由于您没有这样的应用程序可能不适合您的应用程序用户的Gmail凭据。
如果所有这些都非常麻烦,您可以考虑采用标准替代方法,即在您自己的网站上支持您自己的基于表单的反馈提交流程,而不是通用电子邮件。