Vous êtes nombreux à nous avoir demandé comment il est possible d’envoyer un e-mail avec du code VB.net depuis une application développée avec Visual Studio.

Voici donc une solution très simple pour réaliser cette fonction.

En synthèse il vous suffit de créer un projet avec Visual Studio Express, ici la version 2008, d’y ajouter quelques Text Box et un bouton pour envoyer le mail.

Mais revenons au code VB.Net :

‘ Cette Exemple vous est offert par OPENHOST.FR
‘ Pour l’envoi de mail via VB.NET
‘ On fait référence la Classe contenant les API pour l’envoi de Mail
  Imports System.Net.Mail.SmtpClient Public Class  frmMain

‘ La Fonction d’envoi est réduite sa plus simple expression afin que vous puissiez facilement la comprendre
‘ et l’adapter ensuite à vos besoins.
‘ Pour ce fait, aucun paramètre n’est passé, tout est lu directement dans les objects Text du formulaire
‘ Attention, vous ne pouvez mettre qu’une seule adresse mail par champ To: ou champ CC:

Public Sub oh_MySendMail()

‘Création de l’objet objSmtpMail pour utiliser la classe SMTPClient de DotNet

Dim objSmtpMail As New System.Net.Mail.SmtpClient

‘Création de l’objet Mailmsg Qui représente le « mail » que nous voulons envoyer et que nous allons
‘paramétrer en vu de son expédition

Dim Mailmsg As New System.Net.Mail.MailMessage

‘Paramétrons d’abord les infos concernant les serveurs SMTP utilisés par OpenHost

objSmtpMail.Host = « exchange1.openhost.fr »

objSmtpMail.Port = 25

 ‘Ajout de l’indetité de l’expéditeur du mail

Mailmsg.From = New System.Net.Mail.MailAddress(MonAdresseDeMessagerie@MonDomaine.fr.com.net)

Mailmsg.Sender = New System.Net.Mail.MailAddress(MonAdresseDeMessagerie@MonDomaine.fr.com.net)

‘Si vous souhaitez utiliser une connexion Sécurisée mettre TRUE sinon,

‘pour commencer les tests mettez FALSE

objSmtpMail.EnableSsl = False

‘Chargement des paramètres d’authentification, à savoir le login et le password de

‘connexion pour s’authentifier sur le serveur SMTP

Dim SMTPUserInfo As New System.Net.NetworkCredential(« MonAdresseMail@MonDomaine.fr.com.net », « MonPassWordDeMessagerie »)

objSmtpMail.UseDefaultCredentials =False

objSmtpMail.Credentials = SMTPUserInfo

‘Petite remarques sur l’utilisation de l’authentification
‘Information provenant de Microsoft
http://msdn.microsoft.com/fr-fr/library/system.net.mail.smtpclient.usedefaultcredentials.aspx
‘Certains serveurs SMTP exigent que le client soit authentifié avant que le serveur
‘envoie le message électronique pour son compte. Définissez cette proprité à True
‘lorsque cet objet SmtpClient doit, si le serveur le demande, s’authentifier à l’aide
‘des informations d’identification par défaut de l’utilisateur actuellement connecté.

‘Pour les applications clientes, c’est le comportement souhaité dans la plupart des scénarios.
‘Les informations d’identification peuvent être sépcifiées également à l’aide des fichiers
‘de configuration machine et de l’application. Pour plus d’informations, consultez la page
‘<mailSettings>, élément (paramètres réseau).

‘Si la proprité UseDefaultCredentials a la valeur false, la valeur définie dans la propriété
‘Credentials est utilisée pour les informations d’identification lors de la connexion au serveur.
‘Si la propriété UseDefaultCredentials a la valeur false et que la propriété Credentials n’a pas été
‘définie, le courrier électronique est envoyé anonymement au serveur.

‘Remarque

 ‘Si vous fournissez des informations d’identification pour l’authentification de base,
‘elles sont envoyées au serveur en texte clair. Cela peut présenter un problème de scurit,
‘car vos informations d’identification peuvent tre vues, puis utilises par d’autres personnes.

‘Ajout du destinataire du mail
‘Si vous voulez ajouter plusieurs destinataires, il vous suffit de répéter cette ligne pour chaque destinataire
‘Idem pour les destinataires en copie et les destinataires en copie masquée.

Mailmsg.To.Add(txtTo.Text)Mailmsg.CC.Add(txtCC.Text)

‘Mailmsg.Bcc = txtBCC.Text
 ‘Ajout du Sujet du Mail et du message

Mailmsg.Subject = txtSujet.Text

Mailmsg.Body = rtxtMessage.Text

‘Ajout possible de « Headers » pour customiser votre e-mail
‘Mailmsg.Headers.Add(« X-Organization », « demo.openhost.fr »)

‘Ajout possible du degr de priorit du mail
‘Mailmsg.Priority = Net.Mail.MailPriority.High
‘Mailmsg.Priority = Net.Mail.MailPriority.Low
Mailmsg.Priority = Net.Mail.MailPriority.Normal

‘Il ne reste plus qu’ envoyer le mail

objSmtpMail.Send(Mailmsg)

‘Libration des ressources utilises

Mailmsg = Nothing

objSmtpMail = Nothing

End Sub

Private Sub bttEnvoyer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bttEnvoyer.Click

‘Evènement déclenché lors du clic sur le bouton envoyé.

oh_MySendMail()

End Sub

End

Class