PDA

View Full Version : Inviare una mail con VB


leon84
16-05-2005, 20:18
Salve ragazzi,
il metodo più veloce e più pratico per inviare una mail con VB qual è ?

Massi91
16-05-2005, 20:21
io ho sempre usato il metodo tradizionale col winsock, e mi sembra sempre il più efficente (oltre ad essere l'unico che conosco)

leon84
16-05-2005, 20:27
io ho sempre usato il metodo tradizionale col winsock, e mi sembra sempre il più efficente (oltre ad essere l'unico che conosco)

Mi spiegheresti o mi posteresti qualcosa ???? :rolleyes:

cionci
16-05-2005, 23:31
Prova questo...

leon84
17-05-2005, 15:33
Prova questo...

L'ho provato ..... funziona ma mi sballa la data ... mi riporta sempre 01/01/1970 ... Da cosa dipende ?????

cionci
17-05-2005, 15:45
Quale data scusa ? A me funziona benissimo...

leon84
17-05-2005, 16:57
Quale data scusa ? A me funziona benissimo...

Intendo che quando ricevo la mail col client me la data 01/01/1970 :(

cionci
17-05-2005, 17:25
Strano...a me da la data giusta :boh: Prova con un altro server di posta... Tra l'altro la data non è presente nel protocollo SMTP...la mette il server... Non è che hai la data del tuo PC impostata così per sbaglio ?

leon84
17-05-2005, 17:42
Strano...a me da la data giusta :boh: Prova con un altro server di posta... Tra l'altro la data non è presente nel protocollo SMTP...la mette il server... Non è che hai la data del tuo PC impostata così per sbaglio ?

No la data del mio pc è esatta ...
Cmq ho utilizzato un altro codice molto più snello e ho notato che fa la stessa cosa ...

Il codice è questo :

Public Sub Invia_Mail(mittente As String, destinatario As String, oggetto As String, messaggio As String, mailserver As String)
sFrom$ = mittente
sTo$ = destinatario
sSubject$ = oggetto
sMessage$ = messaggio

' need SMTP server to route message thru, 25 (SMTP)
Winsock1.Connect mailserver, 25

Do While Winsock1.State <> sckConnected: DoEvents: Loop


sendMsg "HELO " & "Peaches"
sendMsg "MAIL FROM: <" & sFrom & ">"
sendMsg "RCPT TO: <" & sTo & ">"
sendMsg "DATA"


m$ = m$ + "From: <" + sFrom + ">" + vbCrLf
m$ = m$ + "To: <" + sTo + ">" + vbCrLf
m$ = m$ + "Subject: " + sSubject$ + vbCrLf
m$ = m$ + "Date: " + Format(Now, Format(Now, "General Date")) + vbCrLf
m$ = m$ + "MIME-Version: 1.0" + vbCrLf
m$ = m$ + "Content-Type: text/plain; charset=us-ascii" + vbCrLf + vbCrLf

m$ = m$ + sMessage$ + vbCrLf + vbCrLf + "." + vbCrLf

sendMsg m$ + "QUIT"

Winsock1.Close


End Sub

Ho notato che se vario il formato della data mi varia l'ora sul client ... Ho impostato come formato il seguente :

Format (Now,"General Date")

il giorno me lo azzecca ma l'ora no ... e cmq non sono tanto sicuro che la data la metta il mail server ma chi compone la mail ... in questo caso ho la prova evidente ... anche se può essere che qualche mail server la rimpiazzi con la sua ....

Ora su MSDN ci sono diversi formati di dati ... credo che il tutto sta nell'individuare una sorta di formato internazionale ... mah ....

cionci
17-05-2005, 17:52
Ok...se la metti così mette la tua, ma non è obbligatoria...il programma che ti ho dato io non la mette...

leon84
17-05-2005, 19:17
Ok...se la metti così mette la tua, ma non è obbligatoria...il programma che ti ho dato io non la mette...

E allora come mai Thunderbird si comporta in quel modo ?

cionci
17-05-2005, 19:21
Non ne ho idea...ma si comporta così con entrambi i programmi ?

leon84
17-05-2005, 20:05
Non ne ho idea...ma si comporta così con entrambi i programmi ?

Si fa lo stesso sia col codice che ho postato io sia con il progetto che mi hai fornito te ...

cionci
18-05-2005, 00:19
Allora non ne ho idea...hai provato a leggere la mail con un altro client di posta ?

leon84
18-05-2005, 08:09
Allora non ne ho idea...hai provato a leggere la mail con un altro client di posta ?

No ... provo e ti faccio sapere ...