elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Cómo mandar email por SMTP.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cómo mandar email por SMTP.  (Leído 25,110 veces)
....Gusto....


Desconectado Desconectado

Mensajes: 1.804



Ver Perfil
Cómo mandar email por SMTP.
« en: 30 Mayo 2005, 03:19 am »

Hola a todos ;D
Para que no joda nadie más con los problemas de mandar mails por visual basic, acá les paso un código.
Este código NO LO DESARROLLÉ YO. no pongo quien lo hizo ya  q no tengo ni la mas minima idea, solo lo encontré en mi hdd bajado de hace un par de años.
aca les pongo el code q no es muy dificil ni largo xD (y traduzco los comments ;D)

Código:
'declaraciones
Dim Response As String, Reply As Integer, DateNow As String
Dim first As String, Second As String, Third As String
Dim Fourth As String, Fifth As String, Sixth As String
Dim Seventh As String, Eighth As String
Dim Start As Single, Tmr As Single


Sub SendEmail(MailServerName As String, FromName As String, FromEmailAddress As String, ToName As String, ToEmailAddress As String, EmailSubject As String, EmailBodyOfMessage As String)
         
    Winsock1.LocalPort = 0 ' hay q poner el puerto a cero para poder mandar mas de 1 mail por cada vez q se abre el prog.
   
If Winsock1.State = sckClosed Then ' ver si el socket esta cerrado.
    DateNow = Format(Date, "Ddd") & ", " & Format(Date, "dd Mmm YYYY") & " " & Format(Time, "hh:mm:ss") & "" & " -0600"
    first = "mail from:" + Chr(32) + FromEmailAddress + vbCrLf ' Quien manda?
    Second = "rcpt to:" + Chr(32) + ToEmailAddress + vbCrLf ' PAra quien es?
    Third = "Date:" + Chr(32) + DateNow + vbCrLf ' fecha
    Fourth = "From:" + Chr(32) + FromName + vbCrLf 'remitente
    Fifth = "To:" + Chr(32) + ToNametxt + vbCrLf ' destinatario
    Sixth = "Subject:" + Chr(32) + EmailSubject + vbCrLf ' asunto
    Seventh = EmailBodyOfMessage + vbCrLf ' cuerpo del mail
    Ninth = "X-Mailer: EBT Reporter v 2.x" + vbCrLf ' que programa lo manda? personalizá esto :-)
    Eighth = Fourth + Third + Ninth + Fifth + Sixth  ' Combinar para un envío apropiado

    Winsock1.Protocol = sckTCPProtocol ' Setear el  protocolo para el envio
    Winsock1.RemoteHost = MailServerName ' Setear la direccion del server
    Winsock1.RemotePort = 25 ' Setear el puerto SMTP
    Winsock1.Connect 'Iniciar conex.
   
    WaitFor ("220")
   
    StatusTxt.Caption = "Conectando...."
    StatusTxt.Refresh
   
    Winsock1.SendData ("HELO worldcomputers.com" + vbCrLf)

    WaitFor ("250")

    StatusTxt.Caption = "Connected"
    StatusTxt.Refresh

    Winsock1.SendData (first)

    StatusTxt.Caption = "Sending Message"
    StatusTxt.Refresh

    WaitFor ("250")

    Winsock1.SendData (Second)

    WaitFor ("250")

    Winsock1.SendData ("data" + vbCrLf)
   
    WaitFor ("354")


    Winsock1.SendData (Eighth + vbCrLf)
    Winsock1.SendData (Seventh + vbCrLf)
    Winsock1.SendData ("." + vbCrLf)

    WaitFor ("250")

    Winsock1.SendData ("quit" + vbCrLf)
   
    StatusTxt.Caption = "Disconnecting"
    StatusTxt.Refresh

    WaitFor ("221")

    Winsock1.Close
Else
    MsgBox (Str(Winsock1.State))
End If
   
End Sub
Sub WaitFor(ResponseCode As String)
    Start = Timer ' para q no se trabe en loop
    While Len(Response) = 0
        Tmr = Start - Timer
        DoEvents ' deja el sistema esperando por una respuesta entrante **IMPORTANTE**
        If Tmr > 50 Then ' tiempo para esperar (en segundos)
            MsgBox "SMTP service error, timed out while waiting for response", 64, MsgTitle
            Exit Sub
        End If
    Wend
    While Left(Response, 3) <> ResponseCode
        DoEvents
        If Tmr > 50 Then
            MsgBox "SMTP service error, impromper response code. Code should have been: " + ResponseCode + " Code recieved: " + Response, 64, MsgTitle
            Exit Sub
        End If
    Wend
Response = "" ' Envia el codigo de respuesta en blanco. **IMPORTANTE**
End Sub


Private Sub Command1_Click()
    SendEmail txtEmailServer.Text, txtFromName.Text, txtFromEmailAddress.Text, txtToEmailAddress.Text, txtToEmailAddress.Text, txtEmailSubject.Text, txtEmailBodyOfMessage.Text
    'MsgBox ("Mail Sent")
    StatusTxt.Caption = "Mail Enviado"
    StatusTxt.Refresh
    Beep
   
    Close
End Sub

Private Sub Command2_Click()
   
    End
   
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

    Winsock1.GetData Response ' Revisa por respuesta entrante *IMPORTANTE*

End Sub


este programita usa:

7 txtboxs:

txtFromEmailAddress
txtFromName
txtToEmailAddress
ToNametxt
txtEmailSubject
txtEmailServer
txtEmailBodyOfMessage

label:  StatusTxt
2 botones, 1 winsock y 7 labels nombrado todo por default.
Screencap:



saludos ;D

AGREGO: Me mandaron varios privados con respecto a ¿Qué hay que poner en servidor SMTP? hay que poner un servidor SMTP como el de yahoo por ejemplo si tienen user ahi o el de su ISP.


« Última modificación: 20 Agosto 2005, 02:26 am por ....Gusto.... » En línea

.:.~GuStO~.:.

BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.006


Ver Perfil
Re: Cómo mandar email por SMTP.
« Respuesta #1 en: 30 Mayo 2005, 22:57 pm »

Esta perfecto ...Gusto...
Gracias por ponerlo...pienso que podriamos poner algunos smpt de diferentes sitios como hotmail, yahoo, wanadoo, gmail,etc.

El de hotmail; mx1.hotmail.com, mx2.hotmail.com, mx3.hotmail.com o aveces tambien funciona smpt.hotmail.com

Aver si os animais y logramos hacer una buena lista.  :P


En línea

....Gusto....


Desconectado Desconectado

Mensajes: 1.804



Ver Perfil
Re: Cómo mandar email por SMTP.
« Respuesta #2 en: 30 Mayo 2005, 23:01 pm »

no se, primero me gustaria una chincheta ;D (que manera de manguear ;) ) y lo otro, puede ser. ni idea, eso hagnlo uds ;D. yo uso el de mi proveedor de internet ;D

saludos ;D
En línea

.:.~GuStO~.:.

BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.006


Ver Perfil
Re: Cómo mandar email por SMTP.
« Respuesta #3 en: 30 Mayo 2005, 23:13 pm »

Oye una cosilla, al poner los 7texbox, hay que ponerle estos nombres?
txtFromEmailAddress
txtFromName
txtToEmailAddress
ToNametxt
txtEmailSubject
txtEmailServer
txtEmailBodyOfMessage
Y otra cosa, para que son los 7 labels?
En línea

....Gusto....


Desconectado Desconectado

Mensajes: 1.804



Ver Perfil
Re: Cómo mandar email por SMTP.
« Respuesta #4 en: 30 Mayo 2005, 23:40 pm »

Oye una cosilla, al poner los 7texbox, hay que ponerle estos nombres?
txtFromEmailAddress
txtFromName
txtToEmailAddress
ToNametxt
txtEmailSubject
txtEmailServer
txtEmailBodyOfMessage

si no queres modificar el codigo si.
las labels vas a ver para que son en el scren cap.
salu2
« Última modificación: 1 Junio 2005, 03:35 am por ....Gusto.... » En línea

.:.~GuStO~.:.

....Gusto....


Desconectado Desconectado

Mensajes: 1.804



Ver Perfil
Re: Cómo mandar email por SMTP.
« Respuesta #5 en: 1 Junio 2005, 03:36 am »

Tema Bloqueado por una recomendación que me dieron que es muy buena. Gracias a esta persona ;D el sabe quien es :P. Si queres seguir realmente con eso de los servers, me mandas un privado, lo desbloqueo, los posteamos y lo rebloqueo.
el bloqueo es para que no surjan dudas ni nada asi en este hilo, si no quedan como 10 paginas despues. cualquier duda, en otro post ;D creo que este prog. queda bastante claro ;D

saludos ;D
En línea

.:.~GuStO~.:.

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mandar email directo por registro MX
Dudas Generales
peterrr 2 5,128 Último mensaje 25 Noviembre 2010, 04:28 am
por peterrr
Mandar Correo con c# y smtp de gmail
.NET (C#, VB.NET, ASP)
Devilboy.Devil 2 13,779 Último mensaje 6 Agosto 2014, 19:33 pm
por Eleкtro
[PROBLEMA:] envio de email por smtp telnet
Redes
inGnio 0 1,976 Último mensaje 16 Agosto 2012, 22:34 pm
por inGnio
mandar select por email
PHP
_vicho_ 1 2,863 Último mensaje 20 Noviembre 2012, 22:21 pm
por gowend
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines