Problema con email

Ciao a tutti ho un problema von l’invio delle email, sulla maggior parte dei PC su cui ho installato il programma l’invio in automatico della email funziona solo in un caso di computer in rete con server sembra che la email sia stata spedita perché non da nessun errore ma non arriva al destinatario ho provato ad inserire come parametri quelli che sono certo che funzionano na niente mentre da altre cose parti va tutto bene.
Di seguito il codice che uso:

Dim email As New EmailMessage
Dim Socket1 As New SMTPSecureSocket

email.FromAddress = FTPIndi // FTPIndi è l’indirizzo di partenza il nome è rimasto quello che usavo nella
// precedente procedura che utilizzava un server FTP
email.Subject = “Invio file”
email.BodyPlainText = “Allegato file”
email.AddRecipient(IndiDest) // Indirizzo di destinazione letto dai parametri
email.headers.appendHeader “X-Mailer”,“Invio file”

//–| set up the socket
if Protetta <> 0 then // Connessione Protetta/Non protetta letto dai parametri di configurazione
// del programma
// Connessione protetta
Socket1.ConnectionType = SMTPSecureSocket.TLSv1
Socket1.SMTPConnectionMode = SMTPSecureSocket.ModeSSLTLS
Socket1.Port = PortaSMTP // La porta viene letta dai parametri di configurazione del programma
Socket1.Secure = True
else
// Connessione non protetta
Socket1.SMTPConnectionMode = SMTPSecureSocket.ModeSTARTTLS
Socket1.Port = PortaSMTP // La porta viene letta dai parametri di configurazione del programma
Socket1.Secure = False
end if

Socket1.Address = SMTPIndi // Indirizzo Smtp del serverletto dai parametri di configurazione
// del programma

if PasswSN = 0 then
Socket1.Secure = True
Socket1.Username=FTPutente // Per FTPutente e FTPPassword vale quanto detto per FTPIndi
Socket1.Password=FTPPassword
end if

Dim file As EmailAttachment

// add attachments
If fileField <> “” Then
file = New EmailAttachment
file.LoadFromFile(GetFolderItem(fileField))
email.Attachments.Append(file)
End If

eMailErrore = 0

//—| send email
Socket1.Messages.Append(email)
Socket1.SendMail

if Socket1.NoError=0 then
MsgBox(“Inviato email”)
else
MsgBox(“Invio email fallito”+EndOfLine+str(Socket1.LastErrorCode))
eMailErrore = 1
end if

La Routine si chiude segnalandomi “Inviato eMail” quindi senza nessun errore però l’email non arriva al destinatario.
Ho aperto le porte sul computer in locale ma nulla, se avete qualche suggerimento ve ne sarei grato.

Prova se il destinatario non riceve:
https://myaccount.google.com/lesssecureapps
Consenti app meno sicure: OFF

Ciao il problema non Gmail perch questo mio utente usa un’altro provider il problema che qualunque provider configuri il risultato lo stesso viene segnalata il corretto invio ma la mail non arriva al destinatario.
Grazie per la dritta comunque

spam ?

no la casella spam vuota

Ciao Pietro,

devi verificare diverse cose:

1) L’utente in questione utilizza una connessione sicura per l’invio delle email oppure no?

Se no non dovresti usare la classe che hai dichiarato:

Dim Socket1 As New SMTPSecureSocket

Ma un Socket non sicuro

Dim Socket1 As New SMTPSocket

Io per esempio utilizzo due tipologie di Socket, non sicuro (SMTPSocket) e sicuro (SMTPSecureSocket).

Inserisci proprio gli oggetti nel form e richiamali all’interno della metodo dove li utilizzi.

2) Altra cosa, ho notato che per il connection type utilizzi il TLS di tipo 1:

Socket1.ConnectionType = SMTPSecureSocket.TLSv1

Hai provato ad utilizzare il tipo 11 o 12?

Io per esempio per la mia configurazione utilizzo il tipo 11:

SMTPSecureSocket.TLSv11

3) Ultima cosa che non guasta mai, inserisci un gestore di log. Nel metodo Error e nel metodo ServerError del Socket (SMTPSocket ed SMTPSecureSocket) Inserisci un sistema di Log oppure una MessageBox che ti visualizza l’errore in maniera istantanea.

Spero di esserti stato di aiuto.

Ciao :wink: