我有一个 emails
变量,其中包含角色中用户的电子邮件地址列表。该列表不是以逗号分隔的。这是我目前拥有的代码:
public virtual MvcMailMessage AdminNotification()
{
var userRoles = Roles.GetUsersInRole("Admin");
var users = new List<MembershipUser>();
var emails = new List<String>();
foreach (var UserName in userRoles)
{
var user = Membership.GetUser(UserName, false);
users.Add(user);
emails.Add(user.Email);
}
return Populate(x =>
{
x.Subject = "AdminNotification";
x.ViewName = "AdminNotification";
emails.ForEach(user => x.To.Add(user.Email));
});
}
我收到一条错误消息,指出'string'不包含'Email'的定义...
我应该使用什么来代替 x.To.Add(user.Email)
?
更新#1
我可以向预期收件人发送电子邮件,但邮件正文为空。消息正文已在 View 中构建。在我使用下面答案中的代码之前它就可以工作,我怎样才能让它再次工作?
最佳答案
这就是我重写的方式:
public virtual MvcMailMessage AdminNotification()
{
string[] userRoles = Roles.GetUsersInRole("Admin");
IEnumerable<string> emails =
userRoles.Select(userName => Membership.GetUser(userName, false))
.Select(user => user.Email);
var message = new MvcMailMessage {Subject = "AdminNotification", ViewName = "AdminNotification"};
foreach (string email in emails)
{
message.To.Add(email);
}
return message;
}
希望对您有所帮助。
关于c# - 使用 Mvc Mailer 向多个地址发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20825197/