Envoyer un mail (gère les fichiers joints et le html) en vb.net (2002,2003,2005) via system.net.dll ou system.web.dll

Soyez le premier à donner votre avis sur cette source.

Vue 23 085 fois - Téléchargée 1 819 fois


Description

Voila j'ai écrit ce petit exemple apres avoir trouver comment utiliser cette dll, je pense que cela pourra etre utile à certains, donc je le poste...

Source / Exemple :


'MAJ : j'ai supprimé le code 2002/2003 (.net framework 1.0 1.1, qui utilisait l'obsolete System.Web.Mail). Celui ci est encore accessible dans le zip, qui n'a pas été mis à jour.

Imports System.Net.Mail ' a ajouter avant la definition de votre classe

'version 2005, compatible il me semble vb2003 fonction renvoyant sous forme de chaine le resultat de l'envoi :
    Public Function sendmail(ByVal Mfrom As String, ByVal Mto As String, ByVal Msubject As String, ByVal Mbody As String, ByVal Mcc As String, ByVal smtpsrv As String, ByVal ishtml As Boolean, Optional ByVal login As String = "", Optional ByVal pass As String = "", Optional ByVal attachedfile As String = "") As String
        Try
            Dim DotNetMail As New MailMessage(New MailAddress(Mfrom), New MailAddress(Mto))
            With DotNetMail
                .Subject = Msubject
                .Body = Mbody
                .IsBodyHtml = ishtml
                If attachedfile <> "" Then
                    .Attachments.Add(New Attachment(attachedfile))
                End If
            End With
            Dim SmtpMail As SmtpClient = New Net.Mail.SmtpClient(smtpsrv)
            If (login <> "" And pass <> "") Then SmtpMail.Credentials = New System.Net.NetworkCredential(login, pass)
            SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network
            SmtpMail.Send(DotNetMail)
            SmtpMail = Nothing
            Return "Mail envoyé avec succés"
        Catch err As Exception
            MsgBox("Erreur: " + err.Message)
            Return "Erreur lors de l'envoie du message : " & err.Message
        End Try
    End Function

Conclusion :


Attention :
Si votre serveur smtp ne supporte pas l'envoie de mails sans etre logué,
Si le serveur de l'email de l'envoyeur n'est pas valide,
Vous recevrez une erreur de type : "Could not access 'CDO.Message' object" .

Voila, il y a les commentaires pour toutes remarques...

PS: le serveur smtp de votre provider (en general smtp.votreprovider.xxx) fait office d'open relay si votre ip fait partie de ses plages.

En clair, vous etes chez wanadoo, mettez smtp.wanadoo.fr ... chez free smtp.free.fr ... etc etc.

Attention c'est votre provider (fournisseur d'accés) ... pas le serveur de votre addresse mail.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Fornikator
Messages postés
43
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
8 juin 2004
-
Jarrive pas a le faire fonctionner sinon 6/10
hvb
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
1 -
c'est pas parcque tu sais pas lancer une source et trouver un server en open relay qu'il faudrait sous-noter le code... ca ne merite pas vraiment de note, c'est surtout la à titre d'exemple...
ronanry
Messages postés
191
Date d'inscription
lundi 25 novembre 2002
Statut
Membre
Dernière intervention
22 décembre 2009
-
et comment peut on faire si on est oblige d'avoir un serveur loggue???
cs_iubito
Messages postés
629
Date d'inscription
mercredi 3 juillet 2002
Statut
Membre
Dernière intervention
9 octobre 2006
-
j'arrive pas à le faire marcher. Eske ça fonctionne avec smtp.free.fr ?
hvb
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
1 -
non smtp.free.fr n'est pas open relay... voila une toute petite liste de serveur dont c'est le cas (je vais pas non plus pousser au spam, si vous en voulez plus, mailez moi ou laisser un msg ici) vu qu'apparement c'est de moins en moins courant (moi mon provider le fait, mais je le donne pas ^^ ) :

ns2.heartlandexpress.com
pool-129-44-35-231.ny325.east.verizon.net
194.204.205.15
194.206.228.97
200.27.165.233

apres tous sont + ou - rapides... je suis en train de creer une liste a mettre a jour de serveurs open relay, mailez moi si cela vous interesse.

Et pour ce qui est de la question de ronanry, je vais essayer de voir ca... mais au pire il reste les sockets.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.