PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Encodage PDF pour envoi avec API MailJet
Encodage PDF pour envoi avec API MailJet
Débuté par Rostagni, 13 juin 2022 11:13 - 1 réponse
Posté le 13 juin 2022 - 11:13
Bonjour à tous,
je rencontre un problème lors de l'envoi d'un PDF en pièce jointe à l'API MailJet. Le mail est délivré mais le pièce jointe n'est pas lisible à l'arrivée. Je suppose qu'il y a un problème au niveau de l'encodage 64 qui est exigé par l'API.
Voici mon code :

sJSON est une chaîne
sEncodagePJ est une chaîne

sJSON = [
{
"Messages":[{
"From":{
"Email":"%1"
},
"Subject":"%2",
"TextPart": "%3",
"MJ-TemplateID":"1",
"MJ-TemplateLanguage":true,
"To":[{
"Email":"%4"
}],
"Attachments":[{
"ContentType":"application/pdf",
"Filename":"%5",
"Base64Content":"%6"
}]
}]
}
]

sEncodagePJ = Encode(fChargeBuffer(PieceJointe),encodeBASE64URL)
sJSON = ChaîneConstruit(sJSON,Expediteur,Sujet,Contenu,Destinataire,"pdfmail.pdf",sEncodagePJ)

cMaRequete..URL = "https://api.mailjet.com/v3.1/send"
cMaRequete..Méthode = httpPost
cMaRequete..Utilisateur = SAI_Clé_API
cMaRequete..MotDePasse = SAI_Password_API
cMaRequete..ContentType = "application/json"
cMaRequete..Contenu = ChaîneVersUTF8(sJSON )

cMaReponse est un restRéponse = RESTEnvoie(cMaRequete)

SI ErreurDétectée ALORS
Erreur(ErreurInfo(errComplet))
SINON
SAI_Reponse_API = UTF8VersAnsi(cMaReponse..Contenu)
FIN

Le mail est remis, la pièce jointe n'est pas lisible. J'ai essayé avec encodageBASE64, mais j'obtiens une erreur de formatage JSON depuis l'API. Je ne sais pas exactement pourquoi d'ailleurs.

Si vous avez une idée ?
Bonne journée.
Posté le 15 juin 2022 - 09:45
Je me réponds car comme souvent j'ai trouvé le problème 15 mn après l'avoir détaillé la chose :
le contenu de la requête DOIT être une variable de type JSON, et non pas une chaîne.

Ainsi le formatage est correct et il n'y a plus d'erreur de syntaxe retournée par l'API.

Bon développement.