Когда мы использовали Trim в строке, он работал нормально.

ожет вызвать ошибку «Указанная строка не в форме, необходимой для адреса электронной почты»?

Строка исходного кода, которая вызывает ошибку:

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

Ответы на вопрос(8)

еса электронной почты. например. [email protected]

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

и это текстовый файл, представляющий собой список электронных писем, вам нужно будет открыть его, прочитать и передать их по одному.

Если это относится к текстовому полю, уберите кавычки вокруг него. Нравится:

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

когда я создавал сообщение с получателем и отправителем, но оно вернуло следующую ошибку:

The specified string is not in the form required for an e-mail address

Проблемный код был следующим:

MailMessage objMsg = new MailMessage(regEmail.Text.ToString(), "[email protected]");

Я исправил проблему, заменив этот код следующим:

MailMessage objMsg = new MailMessage();
objMsg.From = new MailAddress(regEmail.Text.ToString());
objMsg.To.Add(new MailAddress("[email protected]"));

Также полезно использовать валидатор регулярных выражений в вашем пользовательском элементе управления, чтобы убедиться, что адрес правильный, вы можете использовать следующий код для asp:

<asp:RegularExpressionValidator ID="regex1" ControlToValidate="regEmail" ErrorMessage="Please enter a valid email address" ValidationExpression="^[\w-\.][email protected]([\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;
}

Проблема с кодом выше могла произойти из-за

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

Возможно, вам ясно, что здесь «txtEmail.Text» отображается в виде строки, а не почтового адреса, на который должна быть отправлена ​​почта. Таким образом, код должен быть заменен на

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

а иногда ошибка вродеУказанная строка не в форме, необходимой для адреса электронной почтыТакже может произойти из-за использования неподходящей строки. Как даже я сталкивался с этим.

В основном я работал над отправкой электронной почты с использованием ASP.Net. Основной проблемой для меня была отправка почты нескольким пользователям, Во-первых, я получил адрес электронной почты из базы данных ииспользуется «;» для разделения нескольких адресов электронной почты, Потому что при отправке электронной почты нескольким пользователям на регулярной основе мы используем точку с запятой, т.е. ";"

Все казалось нормально, но после компиляции я получил ошибку "Указанная строка не в форме, необходимой для адреса электронной почты".

После небольшого анализа я узнал, что вместо «;» мы должны использовать «», чтобы разделить несколько адресов электронной почты при отправке почты. Это форматированная строка для разделения писем.

Для деталей посетите:http://kopila.com.np

Спасибо!

Это должно быть в следующем формате.

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

Конечные пробелы. По какой-то причине, когда вы используете многострочное текстовое поле, пробелы добавляются в начало строки.

Когда мы использовали Trim в строке, он работал нормально.

txtEmail.Text" не является действительным адресом электронной почты? Я просто догадываюсь здесь, но вы можете удалить кавычки, чтобы получить фактическое значение в вашем контроле ...

) для разделения нескольких электронных писем. Как только я изменяю это на запятую (,), это работает. Надеюсь, это кому-нибудь поможет.

 Andrew Uricchio02 мая 2013 г., 18:01
Это была проблема для меня, спасибо.

Ваш ответ на вопрос