SMTP et Mail multipart

Bonjour,
jusqu’à maintenant (4Dv15) on gérait dans notre logiciel des mails multiparts (texte et html) en créant nous même les boundary et multipart (encodage au format binaire), et en envoyant par smtp_send.
Au passage en v16, le mail multipart ne fonctionne plus sur mac (ordi, iphone etc …), on visualise le corps entier du message (alors que dans les autres messageries on visualise correctement)

–_DM_MIME_1_20170309_1377224001
Content-Type: text/plain;charset=‘UTF-8’;format=flowed;
Content-Transfer-Encoding: quoted-printable

=0D=0Atest texte=0D=0A
–_DM_MIME_1_20170309_1377224001
Content-Type: text/html;charset=‘UTF-8’
Content-Transfer-Encoding: quoted-printable

=0D=0Atest html=0D=0A --_DM_MIME_1_20170309_1377224001--

On a tenté de directement envoyer le mime par la commande quicksend (paramétre session à 8), rien ne change (et le problème est aussi présent en v15)
Est-ce que quelqu’un a déjà eu le problème et connait une solution pour faire du multipart alternative (texte et html ) fonctionnel sur toutes les plateformes ?
D’avance merci.

http://forums.4d.fr/Post/DE/19099114/1/19099115have you seen this?>

Bonjour,

J’ai remarqué un comportement dans les anciennes versions de 4D…
Je ne sais pas si ça peut aider.
La commande set pref agit lors de la préparation du mail, et on pouvait (peut-être encore le cas) changer de mode en cours de route…Je mexplique…

Pseudo code (utilisé en v13 pour faire des mail html avec des images) :
<code 4D>

// UTF-8 & quoted-printable
$ve_lineFeeds:=1
$ve_bodyType:=15 // UTF-8 & quoted-printable
$vl_lineLength:=0
$vl_errCode:=SMTP_SetPrefs ($ve_lineFeeds;$ve_bodyType;$vl_lineLength)

// entête smtp avec 4D IC qui va se charger de l’encoding
$ve_encodeHeaders:=1
$ve_bodyCharset:=0
$vl_errCode:=SMTP_Charset ($ve_encodeHeaders;$ve_bodyCharset)

$vl_errCode:=SMTP_New ($vl_smtpId)

Si ($vl_errCode=0)
SMTP_Host ($vl_smtpId;$vt_host)
IT_SetPort (2;$vl_port)

SMTP_Subject ($vl_smtpId;$vt_subject)
SMTP_From ($vl_smtpId;$vt_from)
SMTP_To ($vl_smtpId;$vt_to)

// body type 0 pour l’envoi du corps…
$ve_lineFeeds:=-1 // no change
$ve_bodyType:=0 // 0 = Application & binary; no encoding
$vl_lineLength:=-1 // no change
$vl_errCode:=SMTP_SetPrefs ($ve_lineFeeds;$ve_bodyType;$vl_lineLength)

// alimentation du body smtp on demande à 4D IC de ne plus se charger de l’encoding (on va gérer, merci)

// ici envoi du body (content-type, html, image, etc et on a plus a se soucier des encodages éventuels)
// ça peut être fait dans des boucle, etc…
$vl_errCode:=SMTP_Body ($vl_smtpId;$vt_bodyBloc;$vl_option)

SMTP_Send ($vl_smtpId)

SMTP_Clear ($vl_smtpId)
fin de si
</code 4D>

La commande http://doc.4d.com/4Dv16/4D-Internet-Commands/16/SMTP-Body.301-3069849.fr.htmlSMTP_Body> a été modifiée en v16. Elle permet maintenant d’ajouter simplement les différentes variantes texte brut/html.

Merci beaucoup pour vos réponses, après comparaison avec le code de la base exemple qui se trouve dans le post indiqué par Ortwin ZILLGEN, je viens de m’apercevoir que les lignes contenant le boundary n’avait que des CR alors que la base exemple contient des CR + LF.
J’ai fait la modification et cela fonctionne. Ce qui est étrange, c’est que tout fonctionnait correctement avant le passage en v16.