2016-09-26 65 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 
} 
相关问题