Vous êtes sur la page 1sur 10

Como enviar mensajes de correo electrnico con

System.Net.Mail
1. Imports System.Net.Mail
1. Dim mail As New MailMessage()
2. 'Para enviar mensaje en HTML
3. mail.IsBodyHtml = True
4.
5. 'A quien se le envia
6. mail.To.Add("destinatario@ejemplo.com")
7. mail.To.Add("OtroDestinatario@ejemplo.com")
8. 'Con copia para
9. mail.CC.Add("Copia@ejemplo.com")
10.
'Con copia oculta
11.
mail.Bcc.Add("CopiaOculta@ejemplo.com")
12.
'De parte de quien
13.
mail.From = New
MailAddress("DeParteDeQuien@ejemplo.com", "Juan
Prez")
14.
15.
'Si necesitas agregar una direccion de respuesta
distinta
16.
mail.ReplyTo = New
MailAddress("AQuienResponder@ejemplo.com", "Elisa
Romero")
17.
'Asunto
18.
mail.Subject = "Hola amigos"
19.
'Cuerpo
20.
mail.Body = "<b>Hola, como estn</b> todos?"
21.
22.
'Por si necesitas aniadir archivos adjuntos
23.
mail.Attachments.Add(New
Attachment("c:archivo1.jpg"))
24.
mail.Attachments.Add(New
Attachment("c:archivo2.jpg"))
25.
26.
Dim smtp As New SmtpClient("127.0.0.1") 'La
direccion IP del servidor SMTP
27.
'Si deseas autenticacion usa la siguiente linea
28.
smtp.Credentials = New
Net.NetworkCredential("login", "password")
29.
'Listo, envia el mail
30.
smtp.Send(mail)

Enviar correo desde ASP.NET con archivo adjunto

dim cuerpo as string="Donde va todo el texto del cuerpo"


Dim msg As New MailMessage(Me.txtEmail.Text, "info@dondevaya.com", "Prueba", cuerpo)
Dim mailClient As New SmtpClient("servidor SMTP", 25)
Dim cred As New System.Net.NetworkCredential("usuario", "clave")

msg.Attachments.Add(New Attachment(fupDoc.PostedFile.InputStream, fupDoc.FileName))


With mailClient
.UseDefaultCredentials = False
.Credentials = cred
.EnableSsl = False
.DeliveryMethod = SmtpDeliveryMethod.Network
.Send(msg)
End With

ASP.NET Enviar correos con archivos adjuntos

Para enviar correos con archivos adjuntos,


tenemos dos maneras,
1.- adjuntamos el archivo indicndole la ruta
fsica donde est ubicado (en el servidor, claro):
Protected Sub Page_Load(ByVal sender As
Object, ByVal e As System.EventArgs) Handles
Me.Load
Dim mail As New MailMessage
mail.From = New MailAddress("algun_correo1")
mail.To.Add("algun_correo2")
mail.Subject = "Email de prueba con archivo adjunto"
mail.Body = "chequea el archivo adjunto que viene en este email"
Dim FilePath As String = Server.MapPath("~/files/simple_file.txt")
'el archivo se adjunta indicndole la ruta
mail.Attachments.Add(New Attachment(FilePath))
Dim mailClient As New SmtpClient()
Dim basicAuthenticationInfo As New NetworkCredential("algun_correo1",
"algun_password1")
mailClient.Host = "algun_email_host"
mailClient.UseDefaultCredentials = True
mailClient.Credentials = basicAuthenticationInfo
mailClient.Send(mail)
End Sub
Este caso es til cuando ya tenemos guardado el archivo en el servidor.
2.- Obtenemos el archivo mediante el control FileUpload, osea el archivo est en la
mquina del cliente sin necesidad de previamente guardarlo en el servidor:
Cdigo ASPX:
<form id="form1" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" />
<br /><br />
<asp:Button ID="Button1" runat="server" Text="Enviar correo con archivo adjunto"
/>
</form>

Cdigo VB.NET:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles
Button1.Click
Dim mail As New MailMessage
mail.From = New MailAddress("algun_correo1")
mail.To.Add("algun_correo2")
mail.Subject = "Email de prueba con archivo adjunto"
mail.Body = "chequea el archivo adjunto que viene en este email"
If FileUpload1.HasFile Then
Dim MyFile As String =
System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName)
Dim attachmentFile As New Attachment(FileUpload1.PostedFile.InputStream,
MyFile)
mail.Attachments.Add(attachmentFile)
End If
Dim mailClient As New SmtpClient()
Dim basicAuthenticationInfo As New NetworkCredential("algun_correo1",
"algun_password1")
mailClient.Host = "algun_email_host"
mailClient.UseDefaultCredentials = True
mailClient.Credentials = basicAuthenticationInfo
mailClient.Send(mail)
End Sub
Para ambos casos debemos importar:
Imports System.Net
Imports System.Net.Mail

Comentarios y errores

Hola,
Si tengo dos archivos en el servidor que quiero mandar por email, s como adjuntar uno de los
archivos, pero cmo adjunto los dos??
slo repite el cdigo:
Dim File1 As String = Server.MapPath("~/files/simple_file1.txt")
Dim File2 As String = Server.MapPath("~/files/simple_file2.txt")
Mail.Attachments.Add(New Attachment(File1))
Mail.Attachments.Add(New Attachment(File2))

2: Hola Segundo mucho gusto de saludarle...tengo una consulta:


encuentro su ejemplo muy interesante, estoy empezando con asp.net.. al emplear su ejemplo
para enviar un correo aparece el error:
No connection could be made because the target machine actively refused it 64.202.165.58:25

Respuesta
Pienso que no hay error del cdigo ASP.NET, por otro lado, puedes intentar algunas cosas para
ir descartando la causa del problema:
1.- Verifica que el nombre tanto del usuario/contrasea/servidor SMTP sean correctos.
2.- Haz Telnet al puerto 25 de tu servidor para ver si est trabajando.
3.- chequea que no haya firewalls bloqueando tu conexin.
4.- Verifica que el servicio SMTP est corriendo y trabajando sobre el puerto 25.

ENVIAR MAIL CON ARCHIVO


ADJUNTO
Desarrollo
>
ASP.NET
Pregunta

Inicie sesin para votar

Hola amigos necesito de su ayuda ya que genere un codigo el cual me envia


correos electronicos y me funciona correctamente pero la idea es que ademas
pueda adjuntar archivos me interesa solamente adjuntar archivos .doc, este es el
codigo que tengo en el boton enviar.
Dim correo As New System.Net.Mail.MailMessage()
correo.From = New System.Net.Mail.MailAddress(Me.txtDe.Text)
correo.To.Add(Me.txtPara.Text)
correo.Subject = Me.txtAsunto.Text
correo.Body = Me.txtDescripcion.Text
correo.IsBodyHtml = False
correo.Priority = System.Net.Mail.MailPriority.Normal
Dim smtp As New System.Net.Mail.SmtpClient
smtp.Host = "smtp.gmail.com"
smtp.Port = 587
smtp.Credentials = New
System.Net.NetworkCredential("xxxxxxxxxxx@gmail.com", "xxxxxx")
smtp.EnableSsl = True
Try
smtp.Send(correo)
Me.Label1.Text = "Mensaje enviado satisfactoriamente"
Catch ex As Exception
Throw New Exception("Error: (" & ex.Message & ")")
End Try

pero como puedo adjutar dichos archivos tendria que utilizar un FileUpload , no lo se
por eso recurro a ustedes ademas es la primera vez que intento hacer algo asi he
buscado en google y hay arto material pero hay cosas que no entiendo.
Gracias y FELICES FIESTAS
sbado, 24 de diciembre de 2011 9:12
Responder
|
Citar

JonaGuitar
45 Puntos
Respuestas

Inicie sesin para votar


Amigos pude solucionar mi problema les dejo el codigo:
If FileUpload1.HasFile Then
Try
FileUpload1.SaveAs("C:\temp\" + FileUpload1.FileName)
'SUPONIENDO QUE ES LA CARPETA DEL SERVIDOR
Me.Label2.Text = "Nombre Archivo: " &
FileUpload1.PostedFile.FileName & "<br>" & _
"Tamao Archivo: " &
FileUpload1.PostedFile.ContentLength & " kb<br>"
Catch ex As Exception
Throw New Exception("Error: (" & ex.Message & ")")
End Try
Else
Me.Label1.Text = "No se ha especificado un archivo"
End If

Dim correo As New System.Net.Mail.MailMessage()


correo.From = New System.Net.Mail.MailAddress(Me.txtDe.Text)
correo.To.Add(Me.txtPara.Text)
correo.Subject = Me.txtAsunto.Text
correo.Body = Me.txtDescripcion.Text
correo.IsBodyHtml = False
correo.Priority = System.Net.Mail.MailPriority.Normal
'Aqui es donde adjunto el archivo para despues enviarlo.
correo.Attachments.Add(New
Attachment(FileUpload1.PostedFile.InputStream,
FileUpload1.FileName))
Dim smtp As New System.Net.Mail.SmtpClient
smtp.Host = "smtp.gmail.com"
'smtp.Host = "smtp.live.com"
smtp.Port = 587
smtp.Credentials = New
System.Net.NetworkCredential("XXXXXXXXXX@gmail.com", "xxxxxxxx")
smtp.EnableSsl = True
Try
smtp.Send(correo)
Me.Label1.Text = "Mensaje enviado satisfactoriamente"
Catch ex As Exception
Throw New Exception("Error: (" & ex.Message & ")")
End Try

Gracias.

Comentarios y errores

Hola,
Para ajuntar archivo puede utilizar
la propiedad Attachments.Add(("archivo.doc") que incluye
un mtodo add() que recibe como parametro un objecto que es el que
usted vas a enviar le dejo un una funcin que le puede ser de utilidad.
Public Shared Function SendMail(ByVal strFrom As String, ByVal strTo As
String, ByVal strSubject As String, ByVal strMsg As String) As Boolean
Try
' Create the mail message
Dim objMailMsg As New System.Web.Mail.MailMessage(strFrom, strTo)
objMailMsg.BodyEncoding = Encoding.UTF8
objMailMsg.Subject = strSubject

objMailMsg.Body = strMsg
Dim at As New Attachment(Server.MapPath("~/Uploaded/txt.doc"))
objMailMsg.Attachments.Add((at)
objMailMsg.Priority = System.Web.Mail.MailPriority.High
objMailMsg.IsBodyHtml = True
'prepare to send mail via SMTP transport
Dim objSMTPClient As New SmtpClient()
objSMTPClient.DeliveryMethod =
SmtpDeliveryMethod.PickupDirectoryFromIis
objSMTPClient.Send(objMailMsg)
Return True
Catch ex As Exception
Throw ex
End Try
End Function

2
Inicie sesin para votar
Amigos pude solucionar mi problema les dejo el codigo:
If FileUpload1.HasFile Then
Try
FileUpload1.SaveAs("C:\temp\" + FileUpload1.FileName)
'SUPONIENDO QUE ES LA CARPETA DEL SERVIDOR
Me.Label2.Text = "Nombre Archivo: " &
FileUpload1.PostedFile.FileName & "<br>" & _
"Tamao Archivo: " &
FileUpload1.PostedFile.ContentLength & " kb<br>"
Catch ex As Exception
Throw New Exception("Error: (" & ex.Message & ")")
End Try
Else
Me.Label1.Text = "No se ha especificado un archivo"
End If
Dim correo As New System.Net.Mail.MailMessage()
correo.From = New System.Net.Mail.MailAddress(Me.txtDe.Text)
correo.To.Add(Me.txtPara.Text)
correo.Subject = Me.txtAsunto.Text
correo.Body = Me.txtDescripcion.Text
correo.IsBodyHtml = False
correo.Priority = System.Net.Mail.MailPriority.Normal
'Aqui es donde adjunto el archivo para despues enviarlo.
correo.Attachments.Add(New
Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName))

Dim smtp As New System.Net.Mail.SmtpClient


smtp.Host = "smtp.gmail.com"
'smtp.Host = "smtp.live.com"
smtp.Port = 587
smtp.Credentials = New
System.Net.NetworkCredential("XXXXXXXXXX@gmail.com", "xxxxxxxx")
smtp.EnableSsl = True
Try
smtp.Send(correo)
Me.Label1.Text = "Mensaje enviado satisfactoriamente"
Catch ex As Exception
Throw New Exception("Error: (" & ex.Message & ")")
End Try

Gracias.

Vous aimerez peut-être aussi