发送从数据库中提取发件人地址的电子邮件

Send an email where sender address is pulled from database

我正在开发一个简单的应用程序,用户将在其中进行身份验证,身份验证后,该页面将显示该用户的当前课程信息。他们使用表格在电子邮件中发送选定的信息。我试图做的是让 mail.From 从数据库中提取电子邮件地址。我查看了论坛并尝试了一些东西。我卡住了。我试过的是下面。

[CAS.CasAuth]
public class HomeController : Controller
{
    private readonly PeopleEntities _db = new PeopleEntities();

    [Authentication.Authorize]
    public ActionResult Index()
    {
        var currentUser = Authentication.CurrentUser.user;
        var classes = _db.vw_People.ToList();

        return View(classes.Where(x => x.user == currentUser));
    }

    [HttpPost]
    public ActionResult Index(string[] courseid)
    {
        SendEmail(null, null, null, null, null, null);

        return View();
    }

    private bool SendEmail(string from, string to, string cc, string subject, string body)
    {
        MailMessage mail = new MailMessage();
        mail.To.Add("test@test.com");
        mail.From = new MailAddress(_db.vw_People.FirstOrDefault(f => f.Email_Addr.ToString()));
        mail.Subject = "Test Test test";
        mail.Body = "Test";

        SmtpClient smtp = new SmtpClient("smtp-settings", 25);
        // smtp.Host = "smtp-settings";
        //smtp.Port = 25;
        smtp.UseDefaultCredentials = false;
        smtp.Credentials = new System.Net.NetworkCredential("test", "password");
        smtp.EnableSsl = true;
        smtp.Send(mail);

        return true;
    }
}

还有这个:

     var sender = _db.vw_People.FirstOrDefault(s => s.Email_Addr);
     mail.From = new MailAddress(sender);

我相信对于这一行,事实上,我什至不确定这一行是如何编译的,Email_Addrbool 吗?:

_db.vw_People.FirstOrDefault(s => s.Email_Addr);

您正在尝试获取数据库中的第一个人,然后 select 他们的电子邮件地址。您实际上所做的只是 selecting People 对象。

试试这个:

var sender = _db.vw_People.First().Email_Addr