Bonsoir, voila mon soucis est assez étrange, j'ai une table mysql qui contient les adresses mail d'utilisateurs, et en parallèle je reçoit dans mon programme des noms et prénoms de personne, qui si il se trouve dans la base de données envoi un mail à la personne concerné, en code ça donne ceci :
dans la partie réception de données avec les nom, prénom qui apparaissent (je vous ai pas mis l'extraction des noms, prenoms):
ma fonction envoi_affectation() qui renvoi le mail d’après le nom est le prénom reçu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim mail As String = mail_affecter(lenom) 'extrait le mail des personnes concernés If mail <> "vide" Then EnvoiMail(mail) 'envoi le mail End If
et enfin ma fonction d'envoi de mail qui envoi le mail a la personne passé en paramètre :
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 Function mail_affecter(ByVal identite As String) Dim nom_prenom As String = identite.Replace(" ", "") Dim destine_a As String = "vide" Dim SQL As String Dim myCommand As New MySqlCommand Dim myAdapter As New MySqlDataAdapter Dim myData As MySqlDataReader Try SQL = "SELECT mail FROM repertoire WHERE CONCAT(nom, prenom) = '" & nom_prenom & "'" myCommand.Connection = HostConn myCommand.CommandText = SQL myAdapter.SelectCommand = myCommand myData = myCommand.ExecuteReader() If myData.Read() = True Then destine_a = myData.GetString("mail") 'MsgBox("Ok") Else destine_a = "vide" End If myData.Close() Catch myerror As MySqlException End Try Return destine_a End Function
Le code en soit ne pose pas de problème, car ça fonctionne bien, seulement pour la première personne trouvée,
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 Sub EnvoiMail(ByVal themail As String) log(Now.ToString + " " + "Envoi les mails passe en parametre a " + themail) Dim TheServer As String = My.Settings.smtp 'serveur smtp de la poste Dim Smtp As New SmtpClient(TheServer, 587) 'Simple Mail Transfer Protocol Dim EmailMessage As New MailMessage Try With EmailMessage .From = New MailAddress(My.Settings.mail_CIS) .To.Add(themail) 'prend en paramétre le mail de l'user .Subject = nature_op .Body = ticket_imprime 'le contenu du mail est le ticket de départ End With Catch ex As Exception End Try Try With Smtp .UseDefaultCredentials = False .DeliveryMethod = SmtpDeliveryMethod.Network .Timeout = 1 If TheServer = My.Settings.smtp Then .EnableSsl = False Else .EnableSsl = True End If .Credentials = New Net.NetworkCredential(My.Settings.mail_CIS, My.Settings.mdp_smtp) 'De:Votre Email , Pass: password de l'Email .Send(EmailMessage) End With Catch ex As Exception End Try End Sub
c'est a dire que par exemple j'ai :
PIERRE DUPONT
ALAIN DURONS
Pourtant mon programme récupère bien les adresses mails des deux personnes, mais seulement le mail de la première personne sera envoyé (PIERRE DUPONT), pas la seconde !
Avec les points d’arrêt j'ai pu voir qu'il rentre pourtant dans la fonction EnvoiMail avec le mail de ALAIN DURONS, mais pas de mail envoyé !!!!
Auriez vous une idée ???
Partager