Use Mandrill API in Google Apps Script

2019-06-14 08:40发布

问题:

I want to use mandrill email sending api in my google apps script. In google script I have to use JSON code but I am not getting how I will use it. I am very new in Google apps script.

var m = new mandrill.Mandrill('XXXXXXXXXXX');
var from_email = "user4@gmail.com";
var to = '[
{
  "email": "recipient.email@example.com",
    "name": "Recipient Name"
}
],';

// create a variable for the API call parameters
var params = {
  "message": {
    "from_email":from_email,
    "to":[{"email":to}],
    "subject": "Sending a text email from the Mandrill API",
    "text": "I'm learning the Mandrill API at Codecademy, it's very difficult."
  }
};

function sendTheMail() {
  // Send the email!
  alert('this is a mail script');
  m.messages.send(params, function(res) {
    log(res);
  }, function(err) {
    log(err);
  });
}

I am not getting how to use this code in Google Apps Script.

回答1:

You'd need to use the urlfetchapp.

var url = "https://mandrillapp.com/api/1.0/messages/send.json";
var your_key = "xxxxxxxxxxxxx";
var from_email = "user4@gmail.com";
var to = [{
    "email": "recipient.email@example.com",
    "name": "Recipient Name"
}];

var params = {
    "key": your_key,
    "message": {
        "from_email":from_email,
        "to":[{"email":to}],
        "subject": "Sending a text email from the Mandrill API",
        "text": "I'm learning the Mandrill API at Codecademy, it's very difficult."
    }
};

var payload = JSON.stringify(params);

var options = {
    'method': 'post',
    'payload': payload,
    'contentType' : 'application/json'
};

var response = UrlFetchApp.fetch(url, options);

Haven't tested this code, but should be something like that.



回答2:

I paste sample code example to send email by Mandrill with attachment file from Google Drive.

function sendEmail() {

  var MANDRILL_API_KEY = "<<your key here>>";

  var files = [
    "<<Google Drive File ID 1>>",  
    "<<Google Drive File ID 2>>",  
    "<<Google Drive File ID 3>>"  
  ];

  var recipients = [
    {
      "email": "ctrlq+to@labnol.org",
      "name": "Amit Agarwal",
      "type": "to"
    }, {
      "email": "ctrlq+cc@labnol.org",
      "type": "cc"
    }, {
      "email": "ctrlq+bcc@gmail.com",
      "type": "bcc"
    }
  ];

  var attachments = [];

  for (var f in files) {
    var file = DriveApp.getFileById(files[f]);
    attachments.push({
      "type": file.getMimeType(),
      "name": file.getName(),
      "content": Utilities.base64Encode(file.getBlob().getBytes())
    });
  }

  var params = {
    "key": MANDRILL_API_KEY,
    "message": {
      "from_email": "<<Sender's Email Address>>",
      "from_name": "<<Sender Name>>",
      "to": recipients,
      "attachments": attachments,
      "headers": {
        "Reply-To": "reply@example.com"
      },
      "subject": "Enter email subject",
      "text"   : "Enter email body in plain text",
      "html"   : "Enter HTML content with <b>tags</b>"
    }
  };

  var response = UrlFetchApp.fetch(
    "https://mandrillapp.com/api/1.0/messages/send.json", {
      'method': 'POST',
      'payload': JSON.stringify(params),
      'contentType': 'application/json'
    });

  Logger.log(response.getContentText());
}

Sample code is extracted from website ctrlq of Amit Agarwal