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

4D Discussion :

Obtenir des CR/LF dans les mails envoyés


Sujet :

4D

  1. #1
    Membre du Club
    Homme Profil pro
    Formateur bancaire
    Inscrit en
    Janvier 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur bancaire

    Informations forums :
    Inscription : Janvier 2009
    Messages : 75
    Points : 61
    Points
    61
    Par défaut Obtenir des CR/LF dans les mails envoyés
    Bonjour,

    Sous Windows et 4D V13

    Mon premier réglage au début de ma méthode d'envoi de mail était :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SMTP_SetPrefs (1;1;0)
    $err:=SMTP_Charset (1;1)
    $Err:=SMTP_New ($smtp_id)  //Création du message
    .......

    Les caractères accentués sont ok mais les retours à la ligne écrits dans le mail à l'envoi, ne se retrouvent pas à la réception.

    par ex. je tape :

    Ligne 1
    Ligne 2

    J'envoie
    et je reçois :

    Ligne 1 Ligne 2.

    J'ai rajouté au début de la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $Temp:=vMessage  //---corps du message---
    $Temp:=Remplacer chaine($Temp;"¶";"\r,\n";*)
    pour forcer le retour chariot et la création d'une nouvelle ligne
    aucun résultat

    Une idée ?
    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 162
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    C'est bizarre. Je n'ai jamais eu de souci avec ça.

    C'est quoi ce caractère "¶" que tu tentes de remplacer ? Pourquoi serait-il là à la place d'un retour chariot ? De toute façon, si j'en crois la doc, c'est un CR simple qu'il faut, pas CRLF.

    Essaies SMTP_SetPrefs(1;15;0) ou SMTP_SetPrefs(0;1;0) à tout hasard.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 162
    Points : 193
    Points
    193
    Par défaut
    En fait la doc n'est pas claire. D'un côté, elle dit que les serveurs SMTP attendent CRLF comme fin de ligne et de l'autre que les CRLF seront remplacée par un CR simple si on met 1 en premier paramètre de SMTP_SetPrefs. Hors ça fonctionne chez moi très bien avec ce 1.

  4. #4
    Membre du Club
    Homme Profil pro
    Formateur bancaire
    Inscrit en
    Janvier 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur bancaire

    Informations forums :
    Inscription : Janvier 2009
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Bonsoir Stanc

    En fait, j'ai trouvé la solution hier soir tard :

    Dans ma méthode, j'avais le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Si ($Err=0)
     $Err:=SMTP_AddHeader ($smtp_id;"Content-Type:";"text/html;charset=ISO-8859-1";1)  //définition de l'entête du message
      //Fin de si
    Je l'ai mis en commentaire et du coup, le code global fonctionne

    Cela vient peut-être du fait que ce code est issu d'une auto-formation de 4D V11 SQL (gestion d'un parc informatique) et qu'à l'époque (il n'y a pas si longtemps !) on n'était pas en unicode ?

    Après moult essais, mon code est devenu :

    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
     
    $code1:=Code de caractere("\r")
    $code2:=Code de caractere("$para;")
      //$Temp:=vMessage  //---corps du message---
      //$crlf:="\r"+"\n"
    SMTP_SetPrefs (1;1;0)
    $err:=SMTP_Charset (1;1)
    vMessage:=Remplacer chaine(vMessage;"$code1";"$code2";*)  //"\r";$crlf;*)  //" pour tester le CR."
    ECRIRE VARIABLES("mesvariables";vMessage)
    $Err:=SMTP_New ($smtp_id)  //Création du message
      //Si ($Err=0)
      //$Err:=SMTP_AddHeader ($smtp_id;"Content-Type:";"text/html;charset=ISO-8859-1";1)  //définition de l'entête du message
      //Fin de si 
    Si ($Err=0)
    $Err:=SMTP_Host ($smtp_id;<>Serveur_SMTP)  // une adresse IP ou "ns0.ovh.net", "smtp.free.fr" "smtp.wanadoo.fr" selon les cas*`Adresse du serveur SMTP
    Fin de si 
    Si ($Err=0)
    $Err:=SMTP_From ($smtp_id;vEmetteur)  //Adresse email de l'expéditeur
    Fin de si 
    Si ($Err=0)
    $Err:=SMTP_Subject ($smtp_id;vObjet)  //Objet du mail
    Fin de si 
    Si ($Err=0)
    $Err:=SMTP_To ($smtp_id;vDestinataire;1)  //Adresse email du destinataire
    Fin de si 
    Si ($Err=0)
    $Err:=SMTP_Cc ($smtp_id;vCopie;1)  //Adresse email du destinataire en copie
    Fin de si 
    Si ($Err=0)
    LIRE VARIABLES("mesvariables";vMessage)
    $Err:=SMTP_Body ($smtp_id;vMessage)  //Contenu du message
    Fin de si 
    Si ($Err=0)
    $Err:=SMTP_Attachment ($smtp_id;vPiece_Jointe;2;1)  //Fichier joint. vérifier les valeurs 2 et 1
    Fin de si 
      //  //--------------est-ce absolument nécessaire ?--------------------
      //Si ($Err=0)
      //$User_SMTP:="UserSMTP"
      //$MDP_SMTP:="mot de passe SMTP"
      //$Err:=SMTP_Auth ($smtp_id;$User_SMTP;$MDP_SMTP)  //authentification sur le serveur SMTP
      //Fin de si 
      //  //--------------Fin de : est-ce absolument nécessaire ?--------------------
     
    Si ($Err=0)
    $Err:=SMTP_Send ($smtp_id)  //Envoi du mail
    Fin de si 
     
    $0:=($Err=0)  //si on n'a pas d'erreur, c'est que le mail est  bien parti
     
      //Si ($Err#0)
      //Si ($MessageAlerte)  //si on veut afficher les alertes (cas par défaut)
      //ALERTE("erreur n° "+Chaine($Err)++IT_ErrorText ($Err))
      //Fin de si 
      //Fin de si 
     
    Si ($smtp_id#0)  //Si un message a bien été créé en mémoire
    $Err:=SMTP_Clear ($smtp_id)  //effacement du message`si l'effacement ne s'est pas bien passé
    Fin de si
    Et il fonctionne

    D'après toi, ce code fonctionnera-t-il sur toutes machines ?
    Pour l'instant, mes tests se limitent à m'envoyer des mails à moi-même !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 162
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    Effectivement, il manquait un morceau du problème. En html, un retour chariot est symbolisé par <br/>. Il n'a que faire des CRLF. Si tu envoies du texte brut, que tu soies en unicode ou non, le header text/html est donc contre-indiqué. Ton code devrait bien fonctionner maintenant quelle que soit la plateforme puisque c'est le plug-in qui prend en charge l'encodage.

  6. #6
    Membre du Club
    Homme Profil pro
    Formateur bancaire
    Inscrit en
    Janvier 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur bancaire

    Informations forums :
    Inscription : Janvier 2009
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Bonjour

    Et merci

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/07/2012, 15h41
  2. Accents mal supporté dans les mails envoyés.
    Par laclac dans le forum Langage
    Réponses: 3
    Dernier message: 06/07/2010, 09h56
  3. Problème d'accents dans les mail envoyés
    Par anoushka dans le forum Débuter
    Réponses: 3
    Dernier message: 24/02/2010, 11h49
  4. Réponses: 2
    Dernier message: 12/11/2008, 15h11
  5. Réponses: 6
    Dernier message: 04/09/2008, 19h06

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