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

Composants VCL Delphi Discussion :

[D2009] IdSMTP : Envoi email


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut [D2009] IdSMTP : Envoi email
    Bonjour,

    J'ai créé une méthode qui permet d'envoyer un email avec les composants Indy. J'ai galéré pour que le mail accepte les caractères accentués (IdMessage.ContentTransferEncoding := 'base64'; ).

    Il me reste un seul problème, le objet du mail est mal encodé. Aucun caractère accentué ne passe.

    Pour info, Delphi 2009 travaille avec les chaines string unicode.

    Voici la méthode :
    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
     
    procedure SendEmail(aTo : string;ASubject : string; ABody : string; AFileName : String);
    var
      Attachment : TIdAttachmentFile;
      IdMessage : TIdMessage;
      IdSMTP : TIdSMTP;
    begin
      IdSMTP    := TIdSMTP.Create(nil);
      IdMessage := TIdMessage.Create(nil);
      Attachment := TIdAttachmentFile.Create(IdMessage.MessageParts,AFileName);
      try
        IdSMTP.Host := 'servermail';
        IdSMTP.Port := 25;
        IdSMTP.ConnectTimeout := 100;
     
        try
          IdMessage.Clear;      
          IdMessage.From.Address := 'mon@email.com';
          IdMessage.Recipients.EMailAddresses := aTo;
     
          IdMessage.Encoding := meMIME;
          IdMessage.ContentType := 'multipart/mixed';
          IdMessage.ContentTransferEncoding := 'base64';
          IdMessage.Charset := idCharsetNames[idcsISO_8859_1];
     
          IdMessage.Subject :=  ASubject;
          IdMessage.Body.Text :=  ABody+#10#13#10#13;
     
            try
              if FileExists(AFileName) then
              Attachment.DisplayName := ExtractFileName(AFileName);
     
              IdSMTP.Connect;
              IdSMTP.Send(IdMessage);
            finally
              IdSMTP.Disconnect();
            end;
        except on E : Exception do
          Debug('SendEmail error :'+E.Message);
        end;
      finally
        IdSMTP.Free;
        IdMessage.Free;
      end;
    end;
    Auriez-vous une solution à mon problème ?

    Merci

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IdMessage.CharSet := 'utf-8';
    et/ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IdMessage .Body.Text := UTF8Encode(IdMessage.Body.Text);
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

Discussions similaires

  1. probléme d'idIMAP et idSMTP (envoi d'email)
    Par touf35 dans le forum C++Builder
    Réponses: 0
    Dernier message: 28/12/2008, 23h38
  2. [Mail] Envoi email avec php
    Par laymounos dans le forum Langage
    Réponses: 8
    Dernier message: 01/06/2006, 14h31
  3. Problème d'envoi email sous Mandriva
    Par wxcvbn123456 dans le forum Réseau
    Réponses: 5
    Dernier message: 26/05/2006, 16h22
  4. [VB]Envoi email
    Par CCRNP dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/03/2006, 18h09
  5. Réponses: 3
    Dernier message: 14/12/2005, 14h56

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