c#asp .net转换为MailAddress

时间:2012-03-06 11:27:14

标签: c# asp.net

我正在开发一个自动发送电子邮件的应用程序。我在web.config文件中有首选项(发件人,收件人等...)。我正在尝试让ex获得接收器,如下所示

          MailMessage msg = new MailMessage();
        msg.To = ConfigurationManager.AppSettings["AdminEmail"];

我收到以下错误。 错误3无法将类型'string'隐式转换为'System.Net.Mail.MailAddressCollection'。有什么帮助吗?

4 个答案:

答案 0 :(得分:1)

尝试使用带有所有字符串的两个构造函数之一 - 特别是这个带有'from'和'to'电子邮件地址的构造函数。

new System.Net.Mail.MailMessage("from@from.com", 
  ConfigurationManager.AppSettings["AdminEmail"])

还有一个接受subjectbody(按此顺序)作为附加字符串参数。

To属性是MailAddress es的集合,因为您可以正确地向多个人发送电子邮件。你不能,因此只需为它分配一个字符串(它可能有助于查看MSDN上的文档?)

但是,您可以AddMailAddressstringMailAddress构造函数有一个只需要一个电子邮件字符串的构造函数,或者一个需要两个电子邮件字符串的构造函数,因此您也可以指定一个显示名称。

答案 1 :(得分:1)

To是一个集合,因此您只需拨打Add就可以了......

msg.To.Add(ConfigurationManager.AppSettings["AdminEmail"]);

或者你可以把它们放在构造函数中,如Andras Zoltan所证明的那样:

new System.Net.Mail.MailMessage("from@from.com", "to@to.com")

Add方法的优势在于,如果您想要添加到其他类似字段(例如CcBcc),它会回答您的问题。

答案 2 :(得分:0)

将您的代码更改为

MailMessage msg = new MailMessage();
msg.To.Add(ConfigurationManager.AppSettings["AdminEmail"]);

System.Net.Mail.MailMessage对象的To属性是MailAddressCollection类型

答案 3 :(得分:0)

新邮件设置具有不同的属性。 To属性现在是MalAddressCollection。你应该可以简单地添加它。

MailMessage msg = new MailMessage();
msg.To.Add(new MailAddress(ConfigurationManager.AppSettings["AdminEmail"]);