У меня была проблема, когда я создавал сообщение с получателем, а отправитель уже в нем, но он вернул следующую ошибку:
The specified string is not in the form required for an e-mail address
Проблемный код былследующим образом:
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;
}