我正在开发一个自动发送电子邮件的应用程序。我在web.config文件中有首选项(发件人,收件人等...)。我正在尝试让ex获得接收器,如下所示
MailMessage msg = new MailMessage();
msg.To = ConfigurationManager.AppSettings["AdminEmail"];
我收到以下错误。 错误3无法将类型'string'隐式转换为'System.Net.Mail.MailAddressCollection'。有什么帮助吗?
答案 0 :(得分:1)
尝试使用带有所有字符串的两个构造函数之一 - 特别是这个带有'from'和'to'电子邮件地址的构造函数。
new System.Net.Mail.MailMessage("from@from.com",
ConfigurationManager.AppSettings["AdminEmail"])
还有一个接受subject
和body
(按此顺序)作为附加字符串参数。
To
属性是MailAddress
es的集合,因为您可以正确地向多个人发送电子邮件。你不能,因此只需为它分配一个字符串(它可能有助于查看MSDN上的文档?)
但是,您可以Add
新MailAddress
或string
。 MailAddress
构造函数有一个只需要一个电子邮件字符串的构造函数,或者一个需要两个电子邮件字符串的构造函数,因此您也可以指定一个显示名称。
答案 1 :(得分:1)
To是一个集合,因此您只需拨打Add
就可以了......
msg.To.Add(ConfigurationManager.AppSettings["AdminEmail"]);
或者你可以把它们放在构造函数中,如Andras Zoltan所证明的那样:
new System.Net.Mail.MailMessage("from@from.com", "to@to.com")
但Add
方法的优势在于,如果您想要添加到其他类似字段(例如Cc
或Bcc
),它会回答您的问题。
答案 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"]);