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

Delphi Discussion :

envoi d'email problème de retour ligne


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 13
    Points
    13
    Par défaut envoi d'email problème de retour ligne
    Bonjour,

    Je suppose que c'est une éternel question que de savoir comment envoyer un email en delphi

    J'ai donc chercher et ai trouvé qu'avec le ShellExecute on pouvait le faire.
    Mais j'ai un problème, c'est que le message qui apparaît dans mon email ne possède pas les retour ligne.

    voici ce que j'ai écrit pour composer mon message :

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    P30:= Jour_absence+' - '+Type_jour+' - '+Code_absence;
    Liste_jour:= liste_jour+P30+CHR(13)+CHR(10);
    Memo1.Text:= liste_jour;
    end;

    et ce que j'ai écrit pour envoyer l'email :

    procedure TForm1.Button2Click(Sender: TObject);
    begin
    adr := 'xxxxx@infrabel.be';
    sujet := 'P30 de ..............';
    messge := Memo1.Text;
    email := 'mailto:'+adr+'?subject='+sujet+'&body='+messge;
    Memo2.text := email ;
    ShellExecute(handle, 'open', Pchar(email), nil, nil, sw_normal);
    end;

    Pourtant quand j'envois vers une fenêtre mémo le Pchar(email), je vois bien que le corps du message possède les retours lignes !!!

    Si quelqu'un a une idée ou me dire comment faire autrement...

    merci

  2. #2
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Salut,

    Met ton code dans les balises 'CODE' et ce sera plus clair à relire pour tout le monde.

    Sinon, en ce qui concerne ton problème, je suis peut-être complétement à coté de la plaque mais ca peut être une piste.

    Si le corps de ton mail par défaut est défini en HTML, les retours chariots ne seront pas compris (le retour chariot est la balise <br>).

    Dans le corps de ton text, ton mémo, essaye en toute lettre d'inserer '<br>'.

    Si cela provoque de retours chariot dans ton mail, c"etait ca le problème, sinon.... faut chercher ailleurs

    si c'est ca 2 solutions:
    tu remplaces tous les retours chariot par '<br>'
    ou bien tu te débrouilles pour envoyer ton mail en mode texte pur.
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable des études
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Points : 12
    Points
    12
    Par défaut Début de réponse
    Salut,

    Je vois que tu travailles toi aussi pour infrabel.

    Je sais pas si tu sais, mais tu peux utiliser les composants Indy : TIdMessage et TIdSMTP. Et pour ça il faut être connecté à un serveur SMTP par ton réseau ou par Internet.

    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
     
    {--- Affecte un message -------------------------------------------------}
    procedure TfenEmail.AssignMessage(Msg: TIdMessage);
    var
     i: integer;
    begin
      Msg.Clear; //Efface l'entête et le corps du message
      Msg.From.Text :='machin@infrabel.be'; //Adresse email de l'expediteur
      Msg.ReplyTo.EMailAddresses:='truc@infrabel.be'; //Adresse email où le 
      Msg.Date:=Date; //Date de l'envoi du message
      Msg.Subject:=ediSujet.Text; //Sujet du message
      Msg.Body.Assign(MemoBody.Lines); //Corps du message
      Msg.IsEncoded := True;
      for i := 0 to ListeFichiers.Count - 1 do
        TIdAttachmentFile.Create(Msg.MessageParts,ListeFichiers[i]); 
    end;
     
    {--- Envoi du message ---------------------------------------------------}
    procedure TfenEmail.EnvoiMessage(MsgAEnvoyer: TIdMessage; Priority: integer);
    begin
      //Priorité du message
      case priority of
      0: MsgAEnvoyer.Priority := mpHighest; 
      1: MsgAEnvoyer.Priority := mpHigh;
      2: MsgAEnvoyer.Priority := mpNormal;
      3: MsgAEnvoyer.Priority := mpLow;
      4: MsgAEnvoyer.Priority := mpLowest;
      end;
      //Connexion au serveur smtp
      IdSMTP1.AuthType := atNone; //Type d'authentification
      IdSMTP1.Host := ediHost.Text; //Hôte (par exemple : smtp.free.fr)
      IdSMTP1.Port:= StrToInt(ediPort.Text); //Port (généralement : 25)
      IdSMTP1.UserName := ediUser.Text; //Nom d'utilisateur
      IdSMTP1.Password := ediPassword.Text; //Mot de passe
      IdSMTP1.Connect; //Connexion
      try
        IdSMTP1.Send(MsgAEnvoyer); //Envoi du message
      finally
        IdSMTP1.Disconnect; //Déconnexion
      end;
    end;

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Salut,


    Ben vi vive Infrabel

    Je ne savais pas pour éditer le code je le ferais dès à présent.
    Sinon, effectivement cela ne marche pas avec <br> , ce n'est pas en html mais du texte.

    Je débute en delphi et dans mes recherches j'ai trouvé avec TIdMessage et TIdSMTP. J'avais téléchargé un exemple mais le compilateur me donnait des erreurs je crois que les composants indy ne sont pas installé je vais regarder pour les installé.

    Merci pour la rapidité de vos réponses.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 13
    Points
    13
    Par défaut finalement trouvé
    voilà, je post la solution. Bien que je ne sais pas si cela intéresse beaucoup de monde.


    En fait , les CHR(13) qui sont ds mon memo.text ne pas compris lors du transfert vers l'email il faut absolument les remplacer par '%0D%0A'

    merci pour tout

    a bientôt

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

Discussions similaires

  1. [WD17] Envoie d'email, problème avec le CC
    Par draco951 dans le forum WinDev
    Réponses: 23
    Dernier message: 10/05/2012, 09h18
  2. problème de retour à la ligne dans un envoi de mail
    Par PAYASS59 dans le forum Langage
    Réponses: 1
    Dernier message: 26/03/2010, 17h48
  3. [ENVOI D'EMAIL] Problème de composant CDONTS
    Par ybenmakh dans le forum ASP
    Réponses: 1
    Dernier message: 10/01/2006, 16h43
  4. Problème d'envoi d'email avec Jmail
    Par Mat5725 dans le forum ASP
    Réponses: 2
    Dernier message: 09/12/2005, 16h34
  5. [MySQL] problème de retour à la ligne.
    Par NPortmann dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/09/2005, 15h43

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