Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: vb6 winsock send mail

  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    vb6 winsock send mail

    Ciao a tutti

    facendo la ricerca nel forum ho trovato questo
    codice:
    Dim sRes As String
    Private Sub Command1_Click()
        Winsock1.RemotePort = 25
        Winsock1.RemoteHost = your_mail_server_here
        'usa il tuo mail server
        Winsock1.Connect
        Do Until Winsock1.State = 7 '7=connected
            DoEvents
        Loop
        sRes = "0"
        Winsock1.SendData "MAIL FROM: " & your_email_here & vbCrLf
        Do Until sRes = "250"
            DoEvents
        Loop
        sRes = "0"
        Winsock1.SendData "RCPT TO: " & someone_email_here & vbCrLf
        Do Until sRes = "250"
            DoEvents
        Loop
        sRes = "0"
        Winsock1.SendData "DATA" & vbCrLf
        Do Until sRes = "354"
            DoEvents
        Loop
        Winsock1.SendData "FROM: " & your_name_here & vbCrLf
        Winsock1.SendData "SUBJECT: " & subject_here & vbCrLf
        Winsock1.SendData Text1.Text & vbCrLf & "." & vbCrLf
        Do Until sRes = "250"
            DoEvents
        Loop
        Winsock1.Close
        MsgBox "Mail sent!"
    End Sub
    
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
        Dim Data As String
        Dim Length As Long
        Winsock1.GetData Data
        Length = Len(Data)
        sRes = Left$(Data, 3)
    End Sub
    il problema è questo
    Chi mi spiega a cosa servono tutti quei loop?
    grazie
    ah e poi anche la parter relativa al dat string
    dimenticavo non conoscendo il significato li ho eliminati.inoltre provo ad inviare una mail ma non mi funziona come mai?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    Utente di HTML.it L'avatar di goku370
    Registrato dal
    Oct 2003
    Messaggi
    569

    Re: vb6 winsock send mail

    Allora, i loop servono ad attendere la risposta del server prima di inviare i nuovi comandi... però mi sembra che il codice sia sbagliato e incompleto!!!
    Prova ad usare il seguente codice modificato...

    codice:
    Dim sRes As String
    Private Sub Command1_Click()
        Winsock1.RemotePort = 25
        Winsock1.RemoteHost = your_mail_server_here
        'usa il tuo mail server
        Winsock1.Connect
        Do Until Winsock1.State = 7 '7=connected
            DoEvents
        Loop
        Winsock1.SendData "HELO" & vbCrLf
        Do Until sRes = "250"
            DoEvents
        Loop     
        sRes = "0"
        Winsock1.SendData "MAIL FROM: " & "<tuo_indirizzo> " & vbCrLf
        Do Until sRes = "250"
            DoEvents
        Loop
        sRes = "0"
        Winsock1.SendData "RCPT TO: " & "<indirizzo_destinatario> " & vbCrLf
        Do Until sRes = "250"
            DoEvents
        Loop
        sRes = "0"
        Winsock1.SendData "DATA" & vbCrLf
        Do Until sRes = "354"
            DoEvents
        Loop
        Winsock1.SendData "FROM: " & "tuo_nick" & vbCrLf
        Winsock1.SendData "SUBJECT: " & "oggetto_messaggio" & vbCrLf
        Winsock1.SendData Text1.Text & vbCrLf & "." & vbCrLf
        Do Until sRes = "250"
            DoEvents
        Loop
        Winsock1.Close
        MsgBox "Mail sent!"
    End Sub
    
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
        Dim Data As String
        Dim Length As Long
        Winsock1.GetData Data
        Length = Len(Data)
        sRes = Left$(Data, 3)
    End Sub
    Fammi sapere se funziona... :maLOL:

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    se ti dico che no va?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    Utente di HTML.it L'avatar di goku370
    Registrato dal
    Oct 2003
    Messaggi
    569


    Cos'è che non va...???

    E va bene.
    Prova a sostituire questa riga:
    codice:
    Winsock1.SendData "HELO" & vbCrLf
    con questa:

    codice:
    Winsock1.SendData "HELO " & "tuo_indirizzo_e-meil" & vbCrLf
    Questa volta deve andare...

  5. #5
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    allora
    eliminando il fatto che non so cosa sia res noto che non è stata dichiarata prima ma solo valorizzata.

    Quando lancio il programma resta fermo...non mi dice niente
    se tolgo i loop mi dice che la mail è stata inviata ma lo steso non accade niente(la mail non arriva)
    come risolvere?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  6. #6
    Utente di HTML.it L'avatar di goku370
    Registrato dal
    Oct 2003
    Messaggi
    569
    Prova a dare i comandi manualmente attraverso il telnet:
    vai in DOS e digita Telnet nome_server 25
    Poi i comandi dovrebbero essere gli stessi che invia il programma! Se manualmente l'e-mail parte vuol dire che è un problema nel codice altrimenti...

  7. #7
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    si scusa mia il fatto è che vorei inviare una mail tramite visual basic...
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  8. #8
    Utente di HTML.it L'avatar di goku370
    Registrato dal
    Oct 2003
    Messaggi
    569
    Allora, ho riscritto completamente il codice, prova così:

    codice:
    Private Sub Command1_Click()
    Winsock1.Connect "indirizzo_server_remoto", 25
    End Sub
    
    Private Sub Winsock1_Connect()
    Winsock1.SendData "HELO " & Winsock1.LocalIP & Chr$(13) & Chr$(10)
    Winsock1.SendData "MAIL FROM:<tuo_indirizzo(opzionale)>" & Chr$(13) & Chr$(10)
    Winsock1.SendData "RCPT TO:<" & "indirizzo_destinatario" & ">" & Chr$(13) & Chr$(10)
    InviaMess
    End Sub
    
    Sub InviaMess()
    Winsock1.SendData "DATA" & Chr$(13) & Chr$(10)
    Winsock1.SendData "SUBJECT: " & "oggetto_del_messaggio" & vbCrLf
    Winsock1.SendData Text1.Text & vbCrLf
    Winsock1.SendData "." & vbCrLf
    Winsock1.Close
    MsgBox "E-mail inviata."
    End Sub
    In questo modo non viene controllata la risposta del server, ma dovrebbe andare. Almeno a me funzia...!!! :master:

  9. #9
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    scusami ma come le richiama le due sub che non sono nel click?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  10. #10
    Utente di HTML.it L'avatar di goku370
    Registrato dal
    Oct 2003
    Messaggi
    569
    Si auto-richiamano... stai stranquillo!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.