Bonjour,
J'ai réalisé le code suivant pour envoyer automatiquement un mail avec une pièce-jointe.
Lorsque je me connecte sur le réseau Internet de mon FAI avec un smtp non authentifié ça fonctionne très bien.
Par contre si je me connecte sur un réseau d'un autre FAI j'ai besoin de m'authentifier en smtp et ça ne fonctionne pas, j'obtiens le message "Le délai d'attente de l'opération a expiré." Je précise que j'ai bien activé l'option smtp authentifié chez mon FAI et que j'ai bien vérifié le compte et le password.
Ai-je commis une erreur dans mon code concernant l'authentification et/ou la sécurité SSL ? (sachant que j'ai configuré mon adresse mail avec une authentification smtp et la sécurité SSL chez mon FAI)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Dim Mail As MailMessage Dim smtp As SmtpClient Dim Expediteur As String Dim Destinataire As String Dim CBServeur As String Dim Compte As String Dim PassWord As String CBServeur = "smtp.free.fr" Compte = "login" PassWord = "AZERTY" Expediteur = "login@free.fr" Destinataire = DataGridViewContacts("Email", NumLigneDataGridViewContacts).Value Mail = New MailMessage Try smtp = New SmtpClient(CBServeur, 465) ' Le serveur SMTP smtp.Credentials = New Net.NetworkCredential(Compte, PassWord) smtp.UseDefaultCredentials = False smtp.EnableSsl = True Dim attachedFile As Net.Mail.Attachment = New Net.Mail.Attachment(folderPath + "Document.pdf") Mail.Attachments.Add(attachedFile) Mail.SubjectEncoding = UTF8Encoding.UTF8 ' L'objet Mail.Subject = "Document" Mail.BodyEncoding = UTF8Encoding.UTF8 ' Le message Mail.Body = "Bonjour," & vbNewLine & "Je vous prie de prendre connaissance du document en pièce-jointe." & vbNewLine & "Cordialement." Mail.From = New MailAddress(Expediteur) Mail.To.Add(New MailAddress(Destinataire)) smtp.Send(Mail) ' Envoi Mail.Dispose() Catch ex As ApplicationException MessageBox.Show(ex.Message) Finally smtp = Nothing Try ' Libérer la mémoire dans un Try car si le message Mail.Dispose() ' sest bien passé, cest déjà chose faite. Catch End Try Mail = Nothing End Try
Merci pour votre aide ...
Partager