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

C# Discussion :

Winforms : envoyer un mail


Sujet :

C#

  1. #1
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 444
    Points : 2 777
    Points
    2 777
    Par défaut Winforms : envoyer un mail
    Bonjour tout le monde,

    Depuis quelques années, pour envoyer un mail j'avais l'habitude d'utiliser la ligne de commande de Thunderbird.

    Ça marche, mais ça peut avoir son intérêt d'utiliser un code un peu plus ... "passe-partout".

    J'ai pompé là :
    https://stackoverflow.com/questions/...ms-application

    à la suite de quoi il m'a fallu préciser le mot de passe SMTP :
    https://stackoverflow.com/questions/...-object-in-net

    Par rapport à des docs de l'époque Mathusalem, ça présente l'avantage que je ne me fais pas insulter dans le style "Form n'est pas la première classe du fichier."

    Le serveur ne répondait pas, car j'avais oublié de préciser le port.

    Une fois cet oubli corrigé, j'obtiens un time-out (dans les deux cas échec, mais le message d'erreur est différent), alors que les mêmes informations sous Thunderbird fonctionnent sans problème, en moins de temps que n'a duré l'essai.

    Une idée de ce que j'ai pu oublier ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 322
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 322
    Points : 1 928
    Points
    1 928
    Par défaut
    quel nom de mail tu utilises ? (google, outlook, hotmail, orange, .......?
    la méthode de connexion de ton code doit sans doute être à adapter selon le service de mail utilisé.

    Avoir les messages d'erreurs peut aussi être utile .....

  3. #3
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 444
    Points : 2 777
    Points
    2 777
    Par défaut
    C'est inmano.com

    Les messages d'erreur
    . avant de donner le numéro de port, pas de réponse du serveur, adresse Mac, après venait autre chose, je crois bien l'adresse IP
    . après : time-out ; ça a au moins le mérite d'être concis.
    Plus précisément "System.Net.Mail.SmtpException*: 'The operation has timed out.''


    Il faut adapter la méthode de connexion, je n'en doute pas, mais ... n'y aurait-il pas quelques fils directeurs à suivre ?

    Ah par exemple les paramètres que j'ai utilisés c'est ceux de la connexion imap, sécurité SSL/TLS, mot de passe normal.

    Tiens, il va falloir que je te dise ça mieux, car pour envoyer un mail ce n'est pas imap mais smtp, et dans le paramétrage smtp sur Thunderbird je vois sécurité de la connexion aucune, méthode d'authentification non renseignée, or le serveur n'enverra pas de mail sans mot de passe SMTP.

    En résumé, ce que je vois comme paramétrage dans Thunderbird ne devrait pas fonctionner, et pourtant ça fonctionne. Donc il va falloir que je comprenne pourquoi, sinon pour copier c'est mal barré ...

    Je n'avais rien précisé pour EnableSsl. J'ai essayé true, puis false. Pas mieux.

    ***
    Précisé le message time-out.
    Ajouté la mention pour EnableSsl.

    ***

    Ah oui, par rapport à un programme C#, Thunderbird peut demander un mot de passe à l'utilisateur lorsque le serveur le réclame, et le restituer la fois d'après. J'en ai un de stocké pour IMAP, et un pour SMTP, d'ailleurs c'est le même.
    Ça doit être pour ça que ça ne pose pas de problème de dire dans les options de Thunderbird qu'on n'utilise pas de mot de passe, puisque le serveur peut ensuite dire le contraire.

  4. #4
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 444
    Points : 2 777
    Points
    2 777
    Par défaut
    Bonjour,
    J'ai continué à chercher, et je suis tombé sur MailKit, d'ailleurs pour les nouveaux développements Microsoft conseille d'utiliser MailKit plutôt que SmtpClient :

    https://learn.microsoft.com/en-us/do...t?view=net-7.0

    Le développeur fournit un programme de démonstration, après avoir tapé son adresse et son mot de passe on voit apparaître ses mails. C'est développé en C# donc il n'y a plus qu'à regarder comment c'est fait.

    Alors il y a des interfaces et des événements fournis pour plein de choses, il reste à voir si on peut se contenter d'une partie pour juste envoyer un mail pour alerter qu'une date est passée.

    https://github.com/jstedfast/MailKit

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 322
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 322
    Points : 1 928
    Points
    1 928
    Par défaut
    sur le github, la partie concernant l'envoie de mail > https://github.com/jstedfast/MailKit#sending-messages

  6. #6
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 444
    Points : 2 777
    Points
    2 777
    Par défaut
    Même plus besoin de chercher

    Merci.

    C'est vrai qu'il a fait un sacré boulot, le mec.

  7. #7
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 444
    Points : 2 777
    Points
    2 777
    Par défaut
    Humf, alors j'ai mis ça en œuvre ...

    Le gars dit de cloner le projet sur la machine de développement. Pour regarder ce qu'il y a dans le code ça peut être une bonne idée, mais pour l'exécution, j'ai un message du style "ah non il ne faut pas l'exécuter de là !"

    Donc, c'est mieux d'utiliser le gestionnaire NuGet, pour installer MailKit, et MimeKit.

    Au moins, ça compile.

    Ensuite, bien entendu, il faut s'abstenir d'appeler le serveur SMTP avec le numéro de port de l'IMAP, sinon ... il ne sait pas quoi faire avec.

    Une fois que j'arrête mes âneries, ça passe.

    Je suis retourné voir dans le code si c'était bien de là que ça venait cette histoire de paintball.
    Il faudra que je pense à mettre un texte qui parle plus à la destinataire.

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

Discussions similaires

  1. [c#, WinForms]Envoyer un mail
    Par Filippo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/06/2023, 18h55
  2. envoyer un mail avec mon programme
    Par shrek dans le forum C++Builder
    Réponses: 8
    Dernier message: 06/12/2006, 12h27
  3. [Debutant(e)]envoyer un mail en jsp
    Par SegmentationFault dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 19/01/2004, 18h28
  4. configurer sql pour envoyer des mails
    Par arwen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/07/2003, 15h28

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