2016-09-26 3 views
3

Этот SELECT, возвращает адрес электронной почты от владельца проекта:Форматирование строки как адрес электронной почты

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

Проверка?

Regex regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"); 
Match match = regex.Match(email); 
if (match.Success) 
{ 
//Send email 
} 
else 
{ 
//Bad email 
} 

Другой способ:

try 
{ 
MailAdress email = new MailAddress(<enter here string>); 
} 
catch (FormatException fe) 
{ 
//Bad email 
} 
Смежные вопросы