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)
$err:=SMTP_Charset(1;1)
$hostName:="file:C:\\Users\\MyWinUser\\Desktop\\test.txt"
$msgTo:="mail.to@gmail.com"
$msgFrom:="mail.sender@gmail.com"
$mailSubject:="テストメール(v17 4372) "
$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 :
- 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
- Enregistrez le fichier avec l'extension ".eml", par exemple "test.eml".
- 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.