我正在尝试检查邮件列表中的电子邮件验证。如果任何电子邮件无效,我必须发送带有错误消息的失败邮件验证列表,我对C#很新,我们怎样才能做到这一点?当我正在阅读书籍时,我发现它可以通过StringBuilder,但我无法找到这个的语法,请为此提供语法。
public static string IsSMTPRequestValid(this SmtpGatewayRequest smtpRequest)
{
SmtpRequestContent content = smtpRequest.Body as SmtpRequestContent;
foreach (string email in content.EmailCC)
{
bool valid = IsEmail(email);
/* Here I would like to check in any of the mails are invalid I have to return false, with the list of invalid mails.*/
}
}
提前多多感谢。
答案 0 :(得分:0)
首先,您必须创建StringBuilder类的实例,然后在新行中将所有无效的电子邮件附加到它。如果您想以字符串形式返回所有电子邮件,则必须调用.ToString()
方法。
public static string IsSMTPRequestValid(this SmtpGatewayRequest smtpRequest)
{
StringBuilder invalidEmails = new StringBuilder();
SmtpRequestContent content = smtpRequest.Body as SmtpRequestContent;
content.EmailCC.Where(email => !IsEmail(email))
.ForEach(n =>
{
invalidEmails.AppendLine(n)
});
return invalidEmails.ToString();
}
或以易于理解的形式
public static string IsSMTPRequestValid(this SmtpGatewayRequest smtpRequest)
{
StringBuilder invalidEmails = new StringBuilder();
SmtpRequestContent content = smtpRequest.Body as SmtpRequestContent;
foreach (var email in content.EmailCC)
{
if (!IsEmail(email))
{
invalidEmails.AppendLine(email);
}
}
return invalidEmails.ToString();
}
离开这个解决方案我认为最好的解决方案是返回整个项目列表。例如:
public static List<string> IsSMTPRequestValid(this SmtpGatewayRequest smtpRequest)
{
List<string> invalidEmails = new List<string>();
SmtpRequestContent content = smtpRequest.Body as SmtpRequestContent;
foreach (var email in content.EmailCC)
{
if (!IsEmail(email))
{
invalidEmails.Add(email);
}
}
return invalidEmails;
}