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

Lazarus Pascal Discussion :

Envoi de mail avec Lazarus


Sujet :

Lazarus Pascal

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 4
    Par défaut Envoi de mail avec Lazarus
    Bonjour à tous,

    pour envoyer des mails j'utilise mail4delphi qui fonctionne bien sur le port 587,
    mon soucis le mail reçu re respecte pas la mise en forme de l'émission ? Pas de respect de saut à la ligne ?
    Mon code
    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
     
    Begin
        Head := 'Gest-Immo serveur Smtp : ' + Dm1.Smtp_Host + ' sur port : ' + IntToStr(Dm1.Smtp_Port);
        Body.Lines.Add('Gest-Immo configuration du serveur Smtp');
        Body.Lines.Add(' Serveur : ' + Dm1.Smtp_Host);
        Body.Lines.Add(' Port : ' + IntToStr(Dm1.Smtp_Port));
        LMail := TMail.new
        .From(Dm1.Smtp_Exp)
        .SSL(Dm1.Smtp_Ssl)
        .Host(Dm1.Smtp_Host)
        .Port(Dm1.Smtp_Port)
        .Auth(Dm1.Smtp_Auth)
        .UserName(Dm1.Smtp_User)
        .Password(Dm1.Smtp_Password)
        .ReceiptRecipient(False)
        .AddCC(Dm1.Smtp_CC)
        .AddBCC(Dm1.Smtp_BCC)
        .AddTo(E5.Text)
        .Subject(Head)
        .AddBody(Body.Lines.Text) ;
     
      if LMail.SendMail then
        ShowMessage('Mél expédié correctement');
     
      end;
    Le soucis est le même avec l'exemple fournit par mail4delphi .
    Une idée pour garder la mise en page ?

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 193
    Par défaut
    Hello,
    en utilisant l'unité mailsendu qui se trouve ici et qui utilise le paquet synapse je n'ai pas ce problème.
    pour du port 587 mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        SMTP.TargetPort := '587';
        SMTP.AutoTLS := True;
        SMTP.FullSSL := False;

    Ami calmant, J.P

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 4
    Par défaut
    Merci pour votre réponse, j'utilise depuis des années le module XMailer également basé sur synapse
    qui respectait également correctement la mise en page, par contre pas moyen de faire fonctionner sur
    des ports sécurisés (465, 587) et ne fonctionnait pas sur tous les pc . Depuis peu j'ai pas mal de méls a expédier
    sur des comptes GMail qui refuse systématiquement des mails émis par un port 25 d'où la volonté de changement .
    La solution delhi4mail fonctionne avec tous les ports (25,465,587 ...) et s'execute sur tous mes pcs .
    J'ai essayé la partie sendmail de votre page, fonctionne que sur port 25 chez moi . Idem que XMAiler .
    Le soucis sur Delphi4mail ne viendrait il pas des constantes d'encodage ?
    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
    constructor TMail.Create;
    begin
      FIdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
      FIdSMTP := TIdSMTP.Create(nil);
      FIdSMTP.ConnectTimeout := CONNECT_TIMEOUT;
      FIdSMTP.ReadTimeout := READ_TIMEOUT;
      FIdMessage := TIdMessage.Create(nil);
      FIdMessage.Encoding := meMIME;
      FIdMessage.ConvertPreamble := True;
      FIdMessage.Priority := mpNormal;
      FIdMessage.ContentType := 'multipart/mixed';
      FIdMessage.CharSet := 'utf-8';
      FIdMessage.Date := Now;
      FIdText := TIdText.Create(IdMessage.MessageParts);
      FIdText.ContentType := 'text/html; text/plain;';
      FIdText.CharSet := 'utf-8';
      FSSL := False;
      FAuth := False;
      FReceiptRecipient := False;
      FMessageId := EmptyStr;
    end;

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 193
    Par défaut
    Hello,
    j'ai le même problème que toi en utilisant la démo de mail4Delphi pourtant il y a bien les CRLF dans le texte du body.
    Avec Xmailer je n'ai pas ce problème et j'utilise le port 587 du serveur SMTP d'orange sans problème. Le serveur gmail est peut-être plus exigeant.
    Ami calmant, J.P

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 4
    Par défaut
    Merci J.P., en fait je n'utilise pas les serveurs de Google, j'ai mon propre serveur qui me relaye bien les mails sur le port 25 avec XMailer,
    sur les ports sécurisés j'ai un soucis ssl qui dit provenir des dll que j'utilise, les dll fournies avec Delhi4mail fonctionnent avec Delphi4mail
    mais pas avec XMailer chez moi . Le soucis est que les destinataires de mails avec une adresse gmail , le relay de Google n'accepte que des mails
    passés par un service sécurisé de bout en bout (d'après mes constatations ) .

  6. #6
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 193
    Par défaut
    Hello,
    Synapse utilise son propre fichier de gestion ssl ssl_openssl_lib.pas et voilà ce qu'on trouve dedans concernant les dlls à scruter :
    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
    SSLLibNames: array[0..LibCount-1] of string = (    // OpenSSL v3.0
        {$IFDEF WIN64}
        'libssl-3-x64.dll',
        {$ELSE}
        'libssl-3.dll',
        {$ENDIF}
        // OpenSSL v1.1.x
        {$IFDEF WIN64}
        'libssl-1_1-x64.dll',
        {$ELSE}
        'libssl-1_1.dll',
        {$ENDIF}
        // OpenSSL v1.0.2 distinct names for x64 and x86
        {$IFDEF WIN64}
        'ssleay32-x64.dll',
        {$ELSE}
        'ssleay32-x86.dll',
        {$ENDIF}
        // OpenSSL v1.0.2
        'ssleay32.dll',
        // OpenSSL (ancient)
        'libssl32.dll'
      );
      CryptoLibNames: array[0..LibCount-1] of string = (
        // OpenSSL v3.0
        {$IFDEF WIN64}
        'libcrypto-3-x64.dll',
        {$ELSE}
        'libcrypto-3.dll',
        {$ENDIF}
        // OpenSSL v1.1.x
        {$IFDEF WIN64}
        'libcrypto-1_1-x64.dll',
        {$ELSE}
        'libcrypto-1_1.dll',
        {$ENDIF}
        // OpenSSL v1.0.2 distinct names for x64 and x86
        {$IFDEF WIN64}
        'libeay32-x64.dll',
        {$ELSE}
        'libeay32-x86.dll',
        {$ENDIF}
        // OpenSSL v1.0.2
        'libeay32.dll',
        // OpenSSL (ancient)
        'libeay32.dll'
      );
    {$ENDIF}
    moi je suis en Lazarus 64 bits donc sous windows ce sont les dll win64 qui se trouvent dans le répertoire Windows\system32 qui m'intéressent :
    Dans ce répertoire j'avais libssl-1_1-x64.dll et libcrypto-1_1-x64.dll et xmailer fonctionnait avec sur port 587
    J'ai téléchargé ici le fichier openssl-3.2.2-win64.zip et extrait les fichiers libssl-3-x64.dll et libcrypto-3-x64.dll que j'ai mis dans windows\system32 et j'ai renommé les anciens fichiers en 1.1 pour être sûr qu'ils ne soient pas utilisés. ça marche toujours pour xmailer.
    Ami calmant, J.P

Discussions similaires

  1. [Mail] Probleme pour l'envoi de mails avec mime
    Par tof91 dans le forum Langage
    Réponses: 1
    Dernier message: 09/03/2006, 16h44
  2. Envoi de mail avec pièce attachée par SMTP
    Par yess78 dans le forum IIS
    Réponses: 4
    Dernier message: 09/12/2005, 13h33
  3. Envoi de mail avec Lotus Notes depuis VB
    Par mdriesbach dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 09/11/2005, 15h29
  4. envoi de mail avec sql server
    Par the_new dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/03/2005, 18h56
  5. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/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