【问题标题】:How to use Mandrillapp API from only client side?如何仅从客户端使用 Mandrillapp API?
【发布时间】:2013-10-15 05:36:57
【问题描述】:

我最近开始使用 Mandrill 进行客户端电子邮件发送。客户端的网站没有使用任何服务器端程序,所以每个逻辑都必须在客户端。

我现在在 Chrome、FireFox、IE10 中工作,但在 LTE IE9 和 Android

m = new mandrill.Mandrill("APIKEY", true)
m.call "messages/send", {
    message:
        html: createHtml()
        subject: "subj"
        from_email: "sender@example.dk",
        from_name: "From",
        to: [
            email: "user@example.com"
            name: "User"
        ]
}, (()->
    console.log "success"
    @
), ()->
    console.log "error"
    @

在这段代码中,我使用的是JS Mandrill API wrapper,但我使用 jQuery ajax POST-ing 进行了尝试,得到了相同的结果。

jQuery 版本:

$.ajax
    type: "POST"
    url: "https://mandrillapp.com/api/1.0/messages/send.json"
    data:
        key: "APIKEY"
        message:
            html: createHtml()
            subject: "subject"
            from_email: "sender@example.dk",
            from_name: "From",
            to: [
                email: "user@example.com"
                name: "User"
            ]

谁能帮帮我,如何修复对 Mandrill 的跨域 API 调用?

【问题讨论】:

    标签: internet-explorer cross-browser cross-domain mailchimp mandrill


    【解决方案1】:

    您的代码似乎有效,因此您可能遇到了浏览器兼容性问题。

    Mandrill API 包装器在底层使用原生 XMLHttpRequest,因此它可能与旧版浏览器不兼容。如果您需要支持 IEhttp://jquery.com/browser-support/)。

    我在 JSBin 上发布了一个工作示例:http://jsbin.com/UyehELo/2/edit。仅测试了 iOS,因为不幸的是我无法访问 IE 或 Android。该示例还允许您在无法轻松访问控制台的移动设备上查看 API 响应。

    PS。请记住,在客户端使用 mandrill 通常不是最好的主意,因为您会公开您的 API 密钥,以便任何人都可以获取它并代表您发送电子邮件。

    【讨论】:

    • 谢谢,我回家后会检查的:) 顺便说一句。我使用 jQuery 1.10.2,所以这应该不是问题。使用 Mandrill,您可以指定允许发送电子邮件的 IP,因此“黑客”只能从同一站点使用它
    猜你喜欢
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多