IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Coder l'envoi d'un mail (sans courrielleur)


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut Coder l'envoi d'un mail (sans courrielleur)
    bonjour,

    Savez-vous s'il est possible en VB.NEt de programmer l'envoi d'un mail (objet, corps, mail destinataire,mail expéditeur) depuis une appli sans passer par un courrielleur.

    J'avais en effet trouvé une solution avec ShellExecute de shell32.dll (trouvée sur le NET) mais celle-ci provoque la création d'un nouveau mail dans le logiciel de mail par défaut de l'utilisateur.
    Or, tous les utilisateurs n'ont pas forcément de courrielleur (beaucoup n'utilisent que leur webmail favori comme gmail sans même paramétrer Outlook fourni avec Windows...).
    Il faudrait donc que je puisse envoyer un mail généré par l'appli sans utiliser de courrielleur.
    Je ne sais même pas si c'est possible

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Oups, je crois avoir trouvé par une simple recherche sur Google.
    En attendant que je confirme par un "Résolu" merci de ne pas tenir compte de mon message.

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Bon ben, faux espoir.
    J'ai bien trouvé des solutions avec System.Net.Mail mais elles supposent toutes de configurer un SMTP.

    Or mon appli va être installé chez je ne sais qui et il m'est impossible de connaître le SMTP. D'ailleurs, certains n'en configurent même pas car (et ils sont de plus en plus nombreux dans ce cas) ils utilisent l'interface gmail.

    Alors peut-être que ma question est mal posée et qu'il ne faut pas parler de "mail" mais je souhaiterais que mon appli envoie un message rédigé dans un form contenant toutes les infos utiles :
    - nom de l'expéditeur (utilisateur de l'appli)
    - mail du destinataire
    - objet
    - corps du mail

    Est-ce possible ?

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Peut-être as-tu déjà parcouru ce contenu ?

    http://www.emailarchitect.net/easendmail/kb/vbnet.aspx


    A+

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Non, je n'avais pas vu ce lien qui est intéressant par ailleurs.
    Je l'ai parcouru, mais il ne fournit pas de solution.
    Les 3 seules solutions approchantes sont :
    - Send Email directly without SMTP server(MX DNS lookup) in VB.NET
    - Send Email using Exchange Web Service - EWS in VB.NET
    - Send Email using Exchange WebDAV in VB.NET

    La première est en fait un envoi via SMTP sans authentification donc pas fiable (la plupart des fournisseurs de SMTP finissent par nécessiter une authentification pour des raisons de sécurité anti-spam)
    La seconde et la 3ème nécessitent aussi une authentification.

    En fait, dans le SMTP, ce qui me gêne c'est la nécessité de s'authentifier. Donc soit je connais le SMTP utilisé par l'utilisateur et je lui demande ses logins dans le form, soit je crée un compte SMTP dont je mets en dur le login dans le code de l'appli. Cette dernière solution me gêne car ce compte pourrait être utilisé par un hacker mal intentionné qui se ferait ainsi passer pour moi dans l'envoi de mails. La première solution n'est pas très souple.

    Bref, Email = SMTP ou équivalent.

    Pourtant lorsque sur un site internet on remplit un formulaire de message, il me semble bien que cela se traduit par l'envoi d'un mail au webmaster, alors comment cela se passe-t-il ?

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    Citation Envoyé par noftal Voir le message
    Pourtant lorsque sur un site internet on remplit un formulaire de message, il me semble bien que cela se traduit par l'envoi d'un mail au webmaster, alors comment cela se passe-t-il ?
    L'hébergeur du site propose un serveur smtp pour l'envoi de mails. Le webmaster utilise ce serveur smtp.

    Citation Envoyé par noftal Voir le message
    Alors peut-être que ma question est mal posée et qu'il ne faut pas parler de "mail" mais je souhaiterais que mon appli envoie un message rédigé dans un form contenant toutes les infos utiles
    L'appli doit envoyer cette information à qui ?

    eb.

  7. #7
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    à moi

  8. #8
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Dans ce cas, tu peux te créer un web service mais il te faudra le faire héberger ou bien être ton propre hébergeur ...

  9. #9
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Ouh là c'est de l'hébreu pour moi.
    C'est quoi un web service ?
    Et comment puis je l'héberger sans passer par un hébergeur ?

  10. #10
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Un web service, c'est comme son nom l'indique un service sur le net que tu peux appeler depuis ton application (comme une fonction) en lui envoyant des paramètres qui effectue un traitement et qui te retourne une réponse. Ce n'est pas vraiment compliqué à mettre en place et il existe énormément d'info et de sources sur le net.
    Ce service doit être disponible sur le net donc hébergement obligatoire. Tu peux aussi l'héberger toi même mais il te faut une machine toujours disponible avec IP fixe et visible depuis l'extérieur avec tout ce que cela engendre au niveau sécurité ... Maintenant je ne sais pas ce que tu veux faire exactement mais pour 10-20 euros par an, tu peux trouver un hébergeur windows.

  11. #11
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Bon ça va être un peu compliqué pour moi.
    Je vais m'orienter vers une autre solution :
    détecter le fait que l'utilisateur n'a pas de logiciel de mail configuré et dans ce cas, générer un fichier texte qu'il joindra lui-même à un mail depuis son WebMail.

    Mais là encore, pas simple :
    J'ai changé mon code comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ' sparams est un string contenant la chaîne concaténée destinataire, objet, contenu
     
    ' l'instruction pour ouvrir le logiciel de mail avec un message prérempli est : 
    System.Diagnostics.Process.Start(sParams)
    Or, lorsqu'un utilisateur n'a pas de mail configuré, cela ne génère pas à proprement une erreur dans VB.NET mais le message suivant (voir ci-joint)

    Donc l'enjeu est de pouvoir capter ce cas de figure à partir de l'instruction Start. Je n'ai rien trouvé dans MSDN
    Images attachées Images attachées  

  12. #12
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    +1 pour le web service, si tu disposes de ton propre serveur chez toi ou chez un hébergeur tu peux très bien en mettre un en place, c'est ce que j'utilise au boulot et le code VB n'est pas très compliqué ensuite.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  13. #13
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Comme je suis très bordélique, finalement, je cours un peu les 2 lièvres à la fois.
    J'ai effectivement réussi en 3 clics à créer un formulaire de contact chez un hébergeur. Je suis en train de voir comment remplir les champs (sujet, nom expéditeur, contenu) puis comment simuler le clic sur le bouton valider.

    Si qqun a un sample de code à cet effet je suis preneur.

    EDIT : décidément, j'ai pas de chance, le formulaire que je viens de créer sur e-monsite.com m'impose un captcha ce qui est incompatible avec le fait de remplir le formulaire par le code (ou alors, il faut que je laisse le soin à l'utilisateur de valider le formulaire, ce qui, à la réflexion n'est pas gênant mais m'impose d'affiche la page)

  14. #14
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Bon j'ai réussi à remplir les champs de mon formulaire de contact :

    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
    Public Class Form1
     
        Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles WebBrowser1.DocumentCompleted
            Dim docForm As System.Windows.Forms.HtmlDocument
            docForm = WebBrowser1.Document
            If docForm IsNot Nothing Then
                docForm.GetElementById("field1").SetAttribute("value", "testNom")
                docForm.GetElementById("field2").SetAttribute("value", "testEmail")
                docForm.GetElementById("field3").SetAttribute("value", "testSujet")
                docForm.GetElementById("field4").SetAttribute("value", "testContenu")
            End If
     
        End Sub
     
    End Class
    Mais ce formulaire comporte un captcha comme indiqué précédemment ce qui génère 2 pb que je n'arrive pas à résoudre :
    - J'ai un message d'erreur de script (voir 1.jpg), j'ai résolu ce pb en passant la propriété ScriptErrorSuppressed du WebBrowser à True
    - Le Captcha ne s'affiche pas -2.jpg - (alors qu'il s'affiche bien sur firefox - 3.jpg) et ce, même si je laisse la propriété ScriptErrorSuppressed du WebBrowser à False. Du coup, je ne peux pas valider mon formulaire.

    C'est cette 2ème erreur qui est bloquante. Qqun a-t-il une solution ?

    EDIT : j'ai testé ce code sur d'autres sites avec captcha et ceux-ci s'affichent correctement. Mon pb semble donc spécifique à ma page de formulaire. Je vous donne donc ici l'URL pour examen :
    http://bacchantis.e-monsite.com/contact/contact.html
    Images attachées Images attachées    

  15. #15
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    @Franck.H (ou toute autre personne qui a la réponse)

    J'ai pas mal avancé dans la solution qui consiste à créer un formulaire de contact Web. A ma grande surprise, il existe pas mal d'outils en ligne qui permettent d'en créer un ( et un sympa), notamment celui-ci.

    j'en ai essayé plusieurs et j'ai tenté d'héberger ce formulaire chez 2 hebergeurs gratuits différents mais le pb est que dans tous ces tests, je ne reçois pas le mail correspondant à la validation du formulaire.
    J'ai déjà identifié grâce à l'aide d'un ami que l'un d'entre eux ne permet pas l'envoi de mails tout simplement. Je suppose que c'est le cas aussi pour le second (mais ce n'est écrit nulle part ou alors c'est bien caché !)

    Bref, mon pb est donc de trouver un hébergeur gratuit chez qui cette fonction (générer l'envoi d'un mail depuis un formulaire web) est activée.

    J'ai compris que tu avais réussi à mettre en place cette stratégie ; c'est donc que tu as trouvé un hébergeur qui satisfait à cette condition. Pourrais-tu me donner son nom ?

  16. #16
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Faute de réponse, j'en ai trouvé un qui fait l'affaire (c'est pour un seul formulaire)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Envoi classeur par mail sans sauvegarde
    Par Halo2550 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/05/2013, 19h56
  2. [XL-2007] Envoi d'un mail sans outlook
    Par kedmard dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 16/05/2012, 14h32
  3. [Mail] Envoi d'un mail sans variable $_POST ?
    Par Jeystrash dans le forum Langage
    Réponses: 4
    Dernier message: 24/09/2007, 18h28
  4. [Mail] Envoi d'e-mail sans utiliser la fonction mail()
    Par the_hardgamer dans le forum Langage
    Réponses: 1
    Dernier message: 10/08/2007, 16h10
  5. envoi de mail sans l'ouverture du client mail
    Par pittacos dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/08/2005, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo