首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在.NET中设置SmtpClient对象的用户名和密码?

如何在.NET中设置SmtpClient对象的用户名和密码?
EN

Stack Overflow用户
提问于 2010-05-05 00:05:44
回答 4查看 215.6K关注 0票数 177

我看到不同版本的构造函数,一个使用来自web.config的信息,一个指定主机,另一个指定主机和端口。但是如何将用户名和密码设置为与web.config不同的用户名和密码呢?我们有一个问题,我们的内部smtp被一些高安全客户端阻止,我们想要使用他们的smtp服务器,有没有办法从代码而不是web.config来做到这一点?

例如,在这种情况下,如果数据库中没有可用的web.config凭据,我该如何使用?

代码语言:javascript
复制
public static void CreateTestMessage1(string server, int port)
{
    string to = "jane@contoso.com";
    string from = "ben@contoso.com";
    string subject = "Using the new SMTP client.";
    string body = @"Using this new feature, you can send an e-mail message from an application very easily.";
    MailMessage message = new MailMessage(from, to, subject, body);
    SmtpClient client = new SmtpClient(server, port);
    // Credentials are necessary if the server requires the client 
    // to authenticate before it will send e-mail on the client's behalf.
    client.Credentials = CredentialCache.DefaultNetworkCredentials;

    try {
        client.Send(message);
    }
    catch (Exception ex) {
        Console.WriteLine("Exception caught in CreateTestMessage1(): {0}", 
                    ex.ToString());
    }              
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-05 00:10:12

代码可以使用SmtpClient:

代码语言:javascript
复制
SmtpClient mailer = new SmtpClient();
mailer.Host = "mail.youroutgoingsmtpserver.com";
mailer.Credentials = new System.Net.NetworkCredential("yourusername", "yourpassword");
票数 329
EN

Stack Overflow用户

发布于 2010-05-05 00:09:41

使用NetworkCredential

是的,只需将这两行添加到您的代码中。

代码语言:javascript
复制
var credentials = new System.Net.NetworkCredential("username", "password");

client.Credentials = credentials;
票数 33
EN

Stack Overflow用户

发布于 2016-02-10 05:33:49

代码语言:javascript
复制
SmtpClient MyMail = new SmtpClient();
MailMessage MyMsg = new MailMessage();
MyMail.Host = "mail.eraygan.com";
MyMsg.Priority = MailPriority.High;
MyMsg.To.Add(new MailAddress(Mail));
MyMsg.Subject = Subject;
MyMsg.SubjectEncoding = Encoding.UTF8;
MyMsg.IsBodyHtml = true;
MyMsg.From = new MailAddress("username", "displayname");
MyMsg.BodyEncoding = Encoding.UTF8;
MyMsg.Body = Body;
MyMail.UseDefaultCredentials = false;
NetworkCredential MyCredentials = new NetworkCredential("username", "password");
MyMail.Credentials = MyCredentials;
MyMail.Send(MyMsg);
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2766928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档