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

Web & réseau Delphi Discussion :

Envoi de mail sécurisé


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut Envoi de mail sécurisé
    Bonjour à tous

    J’ai un petit problème pour l’envoi de mail via les composants INDY.
    J’ai adapté cela à partir de https://mikejustin.wordpress.com/201...-applications/

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    FUNCTION TSSLEmail.SendEmail: Boolean;
    VAR
        i: Integer;
     
    BEGIN
        Result := True;
        IdMessage := TIdMessage.Create;
        TRY
            InitMailMessage;
     
            SMTP := TIdSMTP.Create;
            TRY
                IF edSSLConnection THEN
                BEGIN
                    AddSSLHandler;
     
                    CASE edSMTPPort OF
                        SMTP_PORT_EXPLICIT_TLS:
                            SMTP.UseTLS := utUseExplicitTLS;
                        SMTP_PORT_STANDARD:
                            SMTP.UseTLS := utNoTLSSupport;
                    ELSE
                        SMTP.UseTLS := utUseImplicitTLS;
                    END;
     
                END;
     
                IF (edUserName <> '') AND (edPassword <> '') THEN
                BEGIN
                    SMTP.AuthType := satSASL;
                    InitSASL;
                END
                ELSE
                BEGIN
                    SMTP.AuthType := satNone;
                    SMTP.AuthType := satDefault;
                END;
     
                SMTP.Host := edSMTPServer;
                SMTP.Port := edSMTPPort;
                SMTP.ConnectTimeout := 30000;
                SMTP.UseEHLO := True;
     
                IF (FedAttache <> NIL) AND (FedAttache.Count > 0) THEN
                BEGIN // il y a des fichier attache
                    TRY
                        IdMessage.ContentType := 'multipart/mixed';
                        FOR i := 0 TO FedAttache.Count - 1 DO
                        BEGIN
                            IF (Trim(FedAttache.Strings[i]) <> '') AND (FileExists(Trim(FedAttache.Strings[i]))) THEN
                            BEGIN
                                TIdAttachmentFile.Create(IdMessage.MessageParts, Trim(FedAttache.Strings[i]));
                                // Attache le fichier
                            END; // Fin de IF
                        END;
                    EXCEPT
                        Result := False;
                        RAISE;
                    END; // fin de TRY / FINALLY
                END
                ELSE
                BEGIN // il n'ya pas de fichier attache
                END; // Fin de IF
     
                TRY
                    TRY
                        SMTP.Connect;
                        TRY
                            SMTP.Send(IdMessage);
                        EXCEPT
                            ON E: Exception DO
                            BEGIN
                                Result := False;
                                RAISE;
                            END;
                        END; // Fin de EXCEPT
                    EXCEPT
                        on E: Exception do
                        Begin
                            Result := False;
                            RAISE;
                        End;
                    END; // Fin de EXCEPT
                FINALLY
                    IF SMTP.Connected THEN
                       SMTP.Disconnect;
                END;
            FINALLY
                SMTP.Free;
            END;
        FINALLY
            IdMessage.Free;
        END;
    END;
    Le paramétrage du mail est ainsi :
    Login : xxxxx@hotmail.fr
    Mot de passe : correct
    Smtp : smtp.live.com
    Port : 587

    De ma machine de développement, pas de problème, cela fonctionne
    Mais, si je le fais d’une machine « client », là plus rien ne va . Ça m’indique : "SSL n'est pas disponible sur ce serveur". J’ai trouvé qu’il fallait ajouter des DLLs dans le répertoire de l’application (libeay32.dll et ssleay32.dll). Mais ces fichiers, je ne les ai pas trouvés pas dans ma machine de développement.
    Où sont-ils ?

    Donc, j’ai ajouté ces fichiers sur la machine client. La situation est alors différente. Ça plante mais le message d’erreur est "La connexion s'est fermée proprement", ce qui est bizarre comme message d’erreur ???? Néanmoins, le courriel, lui, n’est jamais reçu….
    Que ce passe-t-il ? et surtout comment le corriger ?

    Merci d’avance
    Merci d'ajouter un sur les tags qui vous ont aidé

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    si j'en crois le message ""SSL n'est pas disponible sur ce serveur", ton client tente d'établir une session SSL (par un "STARTTLS" j'imagine) alors que ce n'est pas disponible sur le serveur.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    Merci pour cette réponse

    Qu'est ce tu entends par le serveur dans ce contexte?

    Le client étant la machine de laquelle le courriel est envoyé, juste?

    Sur la machine "client" de développement : ca marche
    sur une machine "client" de "production" : le courriel n'arrive pas au destinataire
    * sans les 2 fichiers DLL : "SSL n'est pas disponible sur ce serveur"
    * En plaçant ces fichiers dans le répertoire de l'application : "La connexion s'est fermée proprement". Je suis content que la connexion se soit fermée, mais comment recevoir le courriel

    a+
    olivier
    Merci d'ajouter un sur les tags qui vous ont aidé

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    le serveur c'est smtp.live.com

    je suppose que le composant prend des décisions tout seul, s'il ne trouve pas les DLL SLL il ne réagit pas comme lorsqu'elles sont là, après j'ignore ce qu'il faut et ce qui cause l'erreur...
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 077
    Points : 41 024
    Points
    41 024
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    à moins que ce soit le port le fautif ?

    lorsque je fait une recherche rapide je vois bien le 587 (TLS) mais aussi le 465 (SSL) , AMHA si tu veux utiliser SSL et ne pas avoir
    "SSL n'est pas disponible sur ce serveur"
    c'est le port 465 qui doit être utilisé
    à tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      IF edSSLConnection THEN
                BEGIN
                    AddSSLHandler;
                    SMTP.Port := 587; 
                    CASE edSMTPPort OF
                        SMTP_PORT_EXPLICIT_TLS:
                            SMTP.UseTLS := utUseExplicitTLS;
                        SMTP_PORT_STANDARD:
                            SMTP.UseTLS := utNoTLSSupport;
                    ELSE BEGIN
                        SMTP.UseTLS := utUseImplicitTLS;
                        SMTP.port:=465; 
                    END;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    Merci Sergio pour le test à réaliser

    Pour l'instant je suis en mission à l'extérieur. Aussi je lancerais ce test à partir de lundi, et je vous tiendrais au courant de l'évolution du problème.

    A+

    olivier
    Merci d'ajouter un sur les tags qui vous ont aidé

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

Discussions similaires

  1. Formulaire de contact "sécurisé" pour envoi de mail
    Par fcedric dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2008, 15h23
  2. Envoi de mail au format Rich-Text
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 29/10/2003, 16h27
  3. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/2003, 11h22
  4. Outlook ne se ferme pas après un envoi de mail
    Par Joke dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/06/2003, 17h32
  5. envoi de mail, protocol SMTP langage C
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 23/05/2003, 11h22

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