2016-09-26 107 views
3

這從項目業主返回的電子郵件地址:格式化字符串作爲電子郵件地址

var selectEmailData = "SELECT User.Email FROM Projects INNER JOIN User ON Projects.ProjectOwner = User.UserId WHERE [email protected]"; 
var dataEmail = db.Query(selectEmailData, ProjectId); 

@foreach (var row in dataEmail) 
{ 
    @row.Email 
} 

但是,當我嘗試這樣做:

var mailTo = dataEmail.ToString(); 

將一封電子郵件:

WebMail.Send(
    to: mailTo, 
    subject: "Hello there!", 
    body: "Your project is ready." 
); 

我得到了這個:指定的字符串不是電子郵件地址所需的格式。

這段代碼有什麼問題?

+1

所以什麼'mailTo'是什麼? –

+1

User.Email的價值是什麼? – ChrisF

+0

'mailTo'和'User.Mail'是來自以下地址的郵件地址:'@ row.Email' – Mendelsohn

回答

0

我敢肯定...

var dataEMail = db.Query(…) would return a collection not a string. 

SO ...

var mailTo = dataEmail.ToString(); 

將返回類似 「System.Collections.Generic ......」

我猜你可能想要像這樣的東西

var selectEmailData = "SELECT User.Email FROM Projects INNER JOIN User ON Projects.ProjectOwner = User.UserId WHERE [email protected]"; 
var allEmails = db.Query(selectEmailData, ProjectId); 

@foreach (var row in allEmails) 
{ 
    WebMail.Send(
    to: @row.Email, 
    subject: "Hello there!", 
    body: "Your project is ready." 
) 
0

驗證?

​​

其他方式:

try 
{ 
MailAdress email = new MailAddress(<enter here string>); 
} 
catch (FormatException fe) 
{ 
//Bad email 
} 
相關問題