使用网络凭据发送电子邮件

时间:2011-03-16 12:50:13

标签: c# smtpclient

我想使用C#中的SMTP客户端发送电子邮件。目前我正在使用此代码:

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.To.Add("receiver");
message.Subject = "";
message.From = new System.Net.Mail.MailAddress("sender");
message.Body = "This is a test mail";
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.gmail.com");
smtp.Credentials = new System.Net.NetworkCredential("username", "password");
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.Send(message);

但是我想通过提供发件人地址来发送使用用户名和密码的邮件。这可能在C#中吗? 是否可以使用任何SMTP服务器(不是谷歌)。我的意思是匿名登录服务器并提供您的邮件地址。

4 个答案:

答案 0 :(得分:3)

没有。 Gmail不允许匿名发件人。值得庆幸的。 如果有可能任何人都假装发送来自其他人的电子邮件,那么将gmail作为一个大垃圾邮件引擎。

答案 1 :(得分:1)

这取决于您的服务器。在您的代码中,您使用的是Gmail,Gmail要求使用此功能。

您可以设置自己的SMTP服务器。

答案 2 :(得分:1)

如果您的应用程序与IIS位于同一服务器上,则IIS中的SMTP服务器默认允许此操作。

答案 3 :(得分:0)

最后,如果服务器需要,您必须发送凭据。

您可以发送当前安全上下文的凭据,如果这是您正在寻找的内容。请参阅:http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultnetworkcredentials.aspx

相关问题