<appSettings>
<add key="SMTP_SERVER" value="localhost"/>
<add key="PathFiles" value="D:inetpubaspdotnetarticulosEnvioMailsfiles"/>
</appSettings>
y un botón de enviar y agregamos el código c# para enviar el correo.
Recuperamos del web.config los valores para el servidor SMTP y la ruta donde guardaremos los ficheros que subiremos al servidor para después adjuntar al correo.
// Recuperamos el fichero que vamos a enviar por mail
string smtpServer = System.Configuration.ConfigurationSettings.AppSettings["SMTP_SERVER"];
// Recuperamos el fichero que vamos a enviar por mail
string sPathFile = System.Configuration.ConfigurationSettings.AppSettings["PathFiles"];
string attch = string.Empty;
string sFile = string.Empty;
if (File1.PostedFile.FileName != "") {
sFile = File1.PostedFile.FileName;
// Extraemos el nombre del fichero, sin la ruta de nuestro disco
sFile = System.IO.Path.GetFileName(sFile);
File1.PostedFile.SaveAs(sPathFile + "" + sFile);
attch = sPathFile + "" + sFile;
}
MailMessage mail = new MailMessage();
Email PARA (FROM) quien va dirigido el mensaje.mail.From = new MailAddress(txtDe.Text.ToString());
Email DE (TO) quien lo enviamail.To.Add(txtPara.Text.ToString());
Si hay email que van en copia CC, y si hay emails en copia oculta BCC
if (txtCopia.Text.ToString() != String.Empty)
mail.CC.Add(txtCopia.Text.ToString());
if (txtBCC.Text.ToString() != String.Empty)
mail.Bcc.Add(txtBCC.Text.ToString());
mail.Subject = txtTitulo.Text;
Texto del mensajemail.Body = txtTexto.Text;
Si el mensaje es con formato HTML o no, True = HTML, False = NO HTMLmail.IsBodyHtml = true;
La prioridad del mensaje, en este caso normalmail.Priority = MailPriority.Normal;
Si hay un fichero adjunto lo añadimos al mail.
if (attch != string.Empty) {
mail.Attachments.Add(new Attachment(attch));
}
SmtpClient smtpMail = new SmtpClient(smtpServer);
Enviamos el correo, si hay algun error , éste seraá devuelto en SmtpException.
try {
smtpMail.Send(mail);
}
catch (SmtpException ex) {
string msg = ex.Message;
}
mail.CC.Add(usuario@dominio.com);
mail.CC.Add(usuario2@dominio.com);
mail.CC.Add(usuario3@dominio.com);
"Unable to send to all recipients." O "Mailbox unavailable. The server response was: 5.7.1 Unable to relay for usuario@dominio.com"
Esto sucede porque el SMTP del IIS del Windows XP puede tener cerrado el relay de correo, en este caso solo hay que abrilo par hacer las pruebas y despues volver a cerrarlo.Para abrilo hay que ir al IIS, a SMTP y con el boton derecho seleccionamos propiedades y despues el tab Access
hay pulsamos el boton relay y en la ventana que sale seleccionamos el segundo radio button (“All Except the list below”).
Enlaces relacionadas:
Código fuente
Saludos
Alex