格式化字符串为电子邮件地址
本文关键字:电子邮件地址 字符串 格式化 | 更新日期: 2023-09-27 18:09:00
这个SELECT返回项目所有者的电子邮件地址:
var selectEmailData = "SELECT User.Email FROM Projects INNER JOIN User ON Projects.ProjectOwner = User.UserId WHERE ProjectId=@0";
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."
);
我得到了这个:指定的字符串不是电子邮件地址所需的形式
这段代码有什么问题?
我很确定…
var dataEMail = db.Query(…) would return a collection not a string.
所以…
var mailTo = dataEmail.ToString();
将返回类似"System.Collections.Generic......"
我猜你可能想要这样的东西
var selectEmailData = "SELECT User.Email FROM Projects INNER JOIN User ON Projects.ProjectOwner = User.UserId WHERE ProjectId=@0";
var allEmails = db.Query(selectEmailData, ProjectId);
@foreach (var row in allEmails)
{
WebMail.Send(
to: @row.Email,
subject: "Hello there!",
body: "Your project is ready."
)
验证?
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
}