【问题标题】:Unable to send email array in mandrill JSON response无法在山魈 JSON 响应中发送电子邮件数组
【发布时间】:2015-09-07 04:13:59
【问题描述】:

您好,我有一个表单,用户输入消息并将其发送给多个收件人。我使用 Mandrill 作为我的电子邮件客户端,脚本如下

function sendMail() {

    var email = $("#email").val();
    var array = email.split(',');
    var name = $("#name").val();
    var msg = $("#msg").val();


$.ajax({

  type: 'POST',
  url: 'https://mandrillapp.com/api/1.0/messages/send.json',
  data: {
    'key': 'xxxxxxx',
    'message': {
      'from_email': 'xxx@xxx.com',
      'to': [
          {
            'email': email,

            'type': 'to'
          }
        ],
      'autotext': 'true',
      'subject': 'Hello world ' + name,
      'html': msg + '<br> <br> <img src="http://res.cloudinary.com/dzmi0gssmwn/image/upload/v1434831725/wpeqmuld5gzdplf7kzcw.jpg" width:320px;height:auto/>'
    }
  }
 }).done(function(response) {
        alert('Your message has been sent. Thank you!'); // show success message
        $("#name").val(''); // reset field after successful submission
        $("#email").val(''); // reset field after successful submission
        $("#msg").val(''); // reset field after successful submission
    })
    .fail(function(response) {
        alert('Error sending message.');
    });
  }

</script> 

当我输入一个电子邮件地址时,收件箱中会成功发送和接收邮件。但是当我使用多个地址提交时,我得到了消息已发送的响应,但是当我查看日志时它指出

[{"email":"xxxx@xxx.xxx, xxxx@xxx.xxx","status":"invalid","_id":"c045cbffbd0c4c5ab5581f5edaff2007","reject_reason":null}]

有谁知道如何解决这个问题或了解出了什么问题?感谢您抽出宝贵时间阅读本文。

【问题讨论】:

    标签: javascript json mandrill


    【解决方案1】:

    首先通过js SDK使用mandrill API

    <script type="text/javascript" src="mandrill.min.js"></script>
    

    可以找到here

    var m = new mandrill.Mandrill('api key');
    
    function sendTheMail(){
        m.messages.send({
            "message": {
                "from_email": "xx@xx.com",
                "from_name": "test",
                "to":[{"email": "xx@x.com", "name": "someone's_name"}],
                "subject": "subj",
                "text": "msg" 
            }
        });
    }
    

    但是,您不应该在服务器上执行此操作,因为这基本上会将您的 API 公开,并且一旦公开,即使是毫秒,机器人也会将其永久保存。

    【讨论】:

    • 问题是当输入多个收件人时我无法成功发送电子邮件。输入单个电子邮件地址时可以正常工作
    • 您好,抱歉,您的解决方案没有说明如何处理多个收件人。我如何解析 var array = email.split(',');并将其添加到 json 对象中。
    • 拆分前email的价值是什么
    • xxx@email.com, xxx@gmail.com,xxx@yahoo.com
    • var arr =[]; email.split(',').forEach(function(k){ arr.push ( {email:k}); });把arr放到“to”:
    猜你喜欢
    • 2018-12-05
    • 2013-05-28
    • 2015-06-22
    • 2015-07-16
    • 2014-07-14
    • 2015-05-02
    • 2016-05-26
    • 2013-05-18
    • 2013-12-12
    相关资源
    最近更新 更多