如何通过 Ionic 5 应用程序中的 http post 将数组传递给 Mailgun api?

Posted

技术标签:

【中文标题】如何通过 Ionic 5 应用程序中的 http post 将数组传递给 Mailgun api?【英文标题】:How to pass array to Mailgun api via http post in Ionic 5 Application? 【发布时间】:2021-05-28 00:41:56 【问题描述】:

我正在尝试将一些图像 URL 发送到 Mailgun API 以使用我的 Mailgun 电子邮件模板变量。但我无法弄清楚如何通过。我可以使用 v: 传递单个变量,但不知道如何传递数组。我曾尝试将 javascript 对象传递给 Http post 方法,但 Mailgun API 给出“from parameter is missing”错误。

using this way I am able to send data to mailgun api without any issues but don't know how to send array or json object. 

var body = 
            "from=Admin <order@xyz.com>" + 
            "&to=" + recipient + 
            "&subject=Order Placed #" + subject +
            "&template=my-template" + 
            "&v:orderID=" + subject +
            "&v:userEmail=" + JSON.parse(address).email +
            "&v:orderCharges=" + this.price * quantity +
            "&v:frameQuantity=" + quantity +
            "&v:orderShipping=" +  JSON.parse(address).addr +
            "&v:orderImage[]=" + encodeURI (message[0]) + "," + encodeURI(message[1]);

        var url = "https://api.mailgun.net/v3/" + this.mailgunUrl + "/messages";

        this.http.post(url,body, 
        
                headers:  'Authorization': 'Basic ' + this.mailgunApiKey, "Content-Type": "application/x-www-form-urlencoded" ,
            ).subscribe(res => 
                console.log('THIS IS EMAIL RES', res);
            )
    

当我尝试传递这样的对象时:


    "from":"order@xyz.com",
    "to": "xxxxx@gmail.com",
    "subject": "Order Placed #46",
    "template": "my-template",
    "v:orderID": 46

Mailgun API 给我错误“缺少来自参数的错误。我也尝试过 from:order@xyz.com。甚至尝试在 url 后传递 json 对象以发布但仍然是相同的错误。

我已经设法通过构造如上所示的正文将数据发送到 mailgun api,但现在我不知道如何传递数组,因为我不知道用户会选择多少张图片。所以我希望 Handlebars.js 每个循环都使用一个数组来将变量转换为数据。

【问题讨论】:

我已按照本指南中的教程将 mailgun 集成到 ionic 中:thepolyglotdeveloper.com/2016/04/… 【参考方案1】:

在 Mailgun 中不能使用动态数据的模板,例如数组。

相反,您可以应用一个技巧。

在 Mailgun 中创建您的模板并对其进行测试。准备就绪后,将其 html 代码复制到源代码中的字符串变量并用数组数据填充它。

然后将此字符串变量作为 Mailgun API 的 html 属性发送。

【讨论】:

感谢您的帮助。

以上是关于如何通过 Ionic 5 应用程序中的 http post 将数组传递给 Mailgun api?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Ionic 5 中的@ionic/angular 错误修复成员事件

Ionic 5:如何写入本地 JSON 文件?

通过 URL 导航时,Ionic 5 / Angular 路由不起作用

通过单击按钮更改 Ionic 应用程序中的输入边框颜色

如何解决 Ionic Angular 应用程序中的 CORS 策略问题?

如何解决 Ionic2 中的 CORS 问题和 JSONP 问题