2011-01-21 20 views

Respuesta

1

Hmm, vamos a ver, ¿es posible que "txtEmail.Text" no es una dirección válida de correo electrónico? Sólo estoy adivinando aquí, pero es posible que desee quitar las comillas de todo eso para conseguir el valor real en su control ...

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

es el problema. txtEmail.Text no es una dirección de correo electrónico. Si se trata de un archivo de texto que es una lista de correos electrónicos, tendrá que abrirlo, leerlo y pasarlos uno por uno.

Si se está refiriendo a un cuadro de texto, tome las citas que lo rodean. De esta manera:

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

tanto la dirección del remitente como la del destinatario deben ser un formato de dirección de correo electrónico válido. p.ej. [email protected]

10

Para mí, el problema consistía en utilizar punto y coma (;) para separar varios correos electrónicos. Una vez que lo cambio a coma (,) funciona. Espero que esto ayude a alguien.

+0

Este fue el problema para mí, gracias. –

3

El tema en el código anterior podría haber ocurrido debido a

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

Es posible quedar claro que aquí "txtEmail.Text" aparece como una cadena, pero no la dirección de correo a la que el correo es que se envíe . Así código debe ser reemplazado con

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

ya veces el error como "La cadena especificada no está en la forma requerida para una dirección de correo electrónico" también puede ocurrir debido a la utilización de string.As impropias incluso lo enfrenté.

Básicamente estaba trabajando en la tarea de envío de correo electrónico utilizando ASP.Net. El principal problema para mí fue enviar correos a varios usuarios. En primer lugar, recuperé la dirección de correo electrónico de la base de datos y usé el "" para separar las múltiples direcciones de correo electrónico. Porque al enviar el correo electrónico a varios usuarios, de forma regular usamos el punto y coma, es decir, ";"

Todo parecía correcto, pero después de la compilación recibí el error "La cadena especificada no está en la forma requerida para una dirección de correo electrónico".

Después de un análisis de bits, llegué a saber que en lugar de usar el ";" deberíamos usar "," para separar varias direcciones de correo electrónico mientras enviamos correos. Esta es la cadena formateada para separar los correos electrónicos.

Para más detalles visite: http://kopila.com.np

Gracias!

0

que tenía un problema en el que estaba creando el mensaje con el destinatario y el remitente ya en ella, pero devolvió el siguiente error:

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

El código problemático fue el siguiente:

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

me ha solucionado el problema mediante la sustitución de ese código con esto:

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

También es útil usar un validador de expresión regular en el control de usuario para asegurarse de que la dirección es válida, puede utilizar el siguiente código para 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> 

O si lo prefiere para validar el correo electrónico en C#, puede usar esto como también lo establece 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

Debe tener el siguiente formato.

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