我有一個MVC應用程序,我試圖在用戶填寫應用程序後發送電子郵件。用戶從包含管理員列表的應用程序頁面上的下拉列表中進行選擇。該電子郵件應發送給從列表中選擇的人。我有一個包含表單信息的應用程序表和一個包含電子郵件的用戶表。如何通過郵箱發送郵件給下拉特定用戶
我在我的帖子中有以下內容索引操作方法,以便在應用程序發佈後發送電子郵件。 (注:這個,如果我只是一個靜態的郵件傳遞到mailMessage.To.Add法正常工作)
SmtpClient client = new SmtpClient("myserver.net");
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("[email protected]");
mailMessage.To.Add(**need to pass in whoever's email is chosen from the dropdown here**);
mailMessage.Subject = "You've Received a New Application";
mailMessage.Body = "Please log in to view your new application. Thanks!";
client.Send(mailMessage);
這是我需要做什麼,我已經試過:
- 抓鬥的applicationID從剛發佈
- 加入該從用戶表中的用戶ID匹配的應用
- 從用戶表中獲取電子郵件
- 將電子郵件傳遞到mailMessage.Add()方法。
我想這個內部聯接查詢,並試圖通過sendEmail到mailMessage.Add()方法:
var sendEmail = from c in db.Applications
join a in db.Users
on c.FullName equals a.Id
select a.Email;
這給我的錯誤:「最好的超載有一些無效的參數。」不知道我是否以正確的方式開展這項工作。
經過一些試用,錯誤和幫助...工作查詢。
var sendEmail = (from c in db.Applications
join a in db.Users
on c.FullName equals a.Id
where a.Id == application.FullName
select a.Email).FirstOrDefault();
if (sendEmail != null)
{
SmtpClient client = new SmtpClient("smtpout.myserver.net");
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("website.com");
mailMessage.To.Add(sendEmail);
mailMessage.Subject = "You've Received a New Application";
mailMessage.Body = "Please log into to view your new application. Thanks!";
client.Send(mailMessage);
}
不錯,不知道FirstOrDefault。 Newb的問題,但我怎麼做一個字符串的結果,所以我可以在我的mailMessage.To.Add()方法中使用它? – dc922 2014-12-04 02:12:20
結果是一個字符串。 – 2014-12-04 02:15:39
謝謝。那麼所有的邏輯顯示正確,沒有錯誤,但電子郵件沒有被髮送。 – dc922 2014-12-04 02:22:27