4D Internet Commands v16

Annexe E, simuler l'envoi de mail dans un fichier local

Accueil

 
4D Internet Commands v16
Annexe E, simuler l'envoi de mail dans un fichier local

Annexe E, simuler l'envoi de mail dans un fichier local  


 

 

Tester et déboguer du code qui envoie des mails peut être très difficile ; lorsqu'un courrier électronique n'est pas reçu correctement, la cause peut être multiple : le réseau, le fournisseur d'accès, le logiciel client, etc.

Pour vous aider, nous avons ajouté la possibilité d'envoyer les emails dans un fichier local au lieu de les envoyer aux destinataires. Grâce à cela, il vous suffit de modifier le fichier en un fichier EML - ce qui est très simple - et ce fichier pourra ainsi afficher les résultats dans MS Outlook. Vous pouvez également inclure des fichiers de courrier électronique dans des procédures de test unitaire.

Vous pouvez lancer le code en local :

 $err:=SMTP_SetPrefs(0;15;0) // Corps : UTF-8  &  QuotedPrintable, En-tête : UTF-8  &  Base64
 $err:=SMTP_Charset(1;1) // Applique les préférences au Corps et à l'En-tête (Corps : UTF-8  &  QuotedPrintable  &  En-tête : UTF-8  &  Base64)
 
  //$hostName:="smtp.gmail.com"  // Envoi à travers le réseau en utilisant smtp.gmail.com
 $hostName:="file:C:\\Users\\MyWinUser\\Desktop\\test.txt" // ou envoi dans un fichier texte
 $msgTo:="mail.to@gmail.com"
 $msgFrom:="mail.sender@gmail.com"
 
 $mailSubject:="テストメール(v17 4372) " //test en utilisant des caractères étendus
 $mailBody:="日本語で終わる"
 $err:=SMTP_QuickSend($hostName;$msgFrom;$msgTo;$mailSubject;$mailBody;0;0;$msgFrom;"password")

Et vous obtiendrez le fichier texte suivant :

<mail.sender@gmail.com>
<mail.to@gmail.com>

Mime-Version: 1.0
Content-Type: text/plain;charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Date: Fri, 08 Jul 2016 16:45:24 +0200
To: mail.to@gmail.com
From: mail.sender@gmail.com
Subject: =?utf-8?B?44OG44K544OI44Oh44O844Or77yIdjE3IDQzNzIpIA==?=

=E6=97=A5=E6=9C=AC=E8=AA=9E=E3=81=A7=E7=B5=82=E3=82=8F=E3=82=8B

Si vous souhaitez ouvrir ce fichier en tant qu'email standard MS Outlook : 

  1. Supprimez toutes les lignes avant "Mime-Version: 1.0":
    Mime-Version: 1.0
    Content-Type: text/plain;charset="utf-8"
    Content-Transfer-Encoding: quoted-printable
    Date: Fri, 08 Jul 2016 16:45:24 +0200
    To: mail.to@gmail.com
    From: mail.sender@gmail.com
    Subject: =?utf-8?B?44OG44K544OI44Oh44O844Or77yIdjE3IDQzNzIpIA==?=

    =E6=97=A5=E6=9C=AC=E8=AA=9E=E3=81=A7=E7=B5=82=E3=82=8F=E3=82=8B
  2. Enregistrez le fichier avec l'extension ".eml", par exemple "test.eml".
  3. Double-cliquez sur le fichier et vous visualiserez l'email dans MS Outlook comme si vous le receviez de votre serveur de mail.

Pour se conformer aux spécificités des tests unitaires, lorsque vous utilisez la commande SMTP_QuickSend avec un fichier de sortie, l'en-tête Date se présente toujours sous cette forme :

Date: Fri, 08 Jul 2016 16:45:24 +0200

Ainsi, les comparaisons de date n'échoueront pas dans les tests unitaires.

Note : Lorsque vous utilisez un hôte réel (comme smtp.gmail.com), l'en-tête Date est remplacé par un véritable timestamp.

Si vous souhaitez obtenir un véritable timestamp dans votre fichier de test, vous pouvez utiliser la commande SMTP_Send. Dans ce cas, vous pouvez appeler la commande SMTP_Date et ainsi fournir un en-tête Date réel avec SMTP_Send.

 
PROPRIÉTÉS 

Produit : 4D Internet Commands
Thème : Annexes
Nom intl. : Appendix E, Mocking network to file

 
HISTORIQUE 

Créé : 4D v16

 
UTILISATION DE L'ARTICLE

4D Internet Commands ( 4D Internet Commands v16)