“指定的字符串不符合电子邮件地址的要求”可能由什么原因引起?

12

什么原因会导致出现错误信息"The specified string is not in the form required for an e-mail address"?

引起错误的源代码行:

msg.To.Add(new MailAddress("txtEmail.Text"));
8个回答

16
msg.To.Add(new MailAddress("txtEmail.Text"));

问题在于txtEmail.Text不是一个电子邮件地址。如果那是一个电子邮件列表的文本文件,您需要打开它并逐个读取并传递它们。

如果这是指文本框,请将引号去掉。像这样:

msg.To.Add(new MailAddress(txtEmail.Text));

13

对我而言,问题在于使用分号(;)来分隔多个电子邮件地址。 一旦我改用逗号(,),它就可以正常工作了。 希望这能帮到某些人。


5
上述代码的问题可能是由于以下原因导致的:
msg.To.Add(new MailAddress("txtEmail.Text"));

您可能明白,在这里“txtEmail.Text”出现为字符串,而不是邮件发送的收件人地址。因此,代码应该被替换为

msg.To.Add(new MailAddress(txtEmail.Text));

有时候会出现“指定的字符串不符合电子邮件地址的要求”的错误,可能是由于使用了不正确的字符串。我也遇到过这种情况。
基本上,我正在使用ASP.Net进行电子邮件发送任务。对我来说,主要问题是向多个用户发送邮件。首先,我从数据库中检索电子邮件地址,并使用“ ; ”来分隔多个电子邮件地址。因为在向多个用户发送电子邮件时,我们通常使用分号即“ ; ”。
一切似乎都很好,但编译后我收到了“指定的字符串不符合电子邮件地址的要求”的错误。
经过一番分析,我发现在发送邮件时,应该使用“ , ”而不是“ ; ”来分隔多个电子邮件地址。这是用于分隔电子邮件的格式化字符串。
详情请访问:http://kopila.com.np
谢谢!

3

发送方和接收方的地址都需要符合有效的电子邮件格式,例如user@domain.com。


1

嗯,让我看看,"txtEmail.Text" 可能不是一个有效的电子邮件地址吗?我只是猜测,但你可能想要从控件中删除引号以获取实际值...


1

猜猜我们的问题是什么?

尾随空格。由于某种原因,当您使用多行文本框时,字符串前面会添加空格。

当我们对该字符串使用Trim时,它可以正常工作。


对我们来说,问题出在换行符(\n)上。去掉它之后,就可以正常工作了! - Ash K

0
我遇到了一个问题,我正在创建包含收件人和发件人的消息,但它返回了以下错误:
“指定的字符串不符合电子邮件地址的格式要求。”
有问题的代码如下:
MailMessage objMsg = new MailMessage(regEmail.Text.ToString(), "me@mysite.com");

我通过用这段代码替换那段代码来解决了这个问题:

MailMessage objMsg = new MailMessage();
objMsg.From = new MailAddress(regEmail.Text.ToString());
objMsg.To.Add(new MailAddress("me@mysite.com"));

在用户控件中使用正则表达式验证器来确保地址有效也是很有帮助的,您可以使用以下代码进行asp:

<asp:RegularExpressionValidator ID="regex1" ControlToValidate="regEmail" ErrorMessage="Please enter a valid email address" ValidationExpression="^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$" ValidationGroup="regGroup" runat="server" Display="None" SetFocusOnError="True"></asp:RegularExpressionValidator>

或者如果您更喜欢使用C#验证电子邮件,那么您可以使用S Fadhel Ali所述的内容:

public static bool IsValidEmail(String Email)
{
    if( Email != null && Email != "" )
        return Regex.IsMatch(Email, @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" );
    else
        return false;
}

0

它应该是以下格式。

Dim myMail As New Net.Mail.MailMessage(New MailAddress(strFrom), New MailAddress(strTo))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接