Search code examples
emailgoogle-apps-scripttwiliosendgrid

Send emails using Sendgrid with google appscript


I am creating a googlesheet addon to send mails.And for sending mails I am using sendgrid. I cannot find any documentation or example code for sending mails with Google Appscript. This is the code I am using, but it is no good.

var data = {

        "api_user":"username",
        "api_key":"ioioi",
        "to":[],
        "tonnage":[],
        "cc":[],
        "ccname":[],
        "bcc":[],
        "subject":sub,
        "from":from,
        "html":htmlBody
      }

      var headers = { "Accept":"application/json", 
                     "Content-Type":"application/json"
                    };



        data = JSON.stringify(data);

        var options = {
          "method": "POST",
          "payload": data,
          "headers": headers,
          "muteHttpExceptions": true
        };

var res = UrlFetchApp.fetch("https://api.sendgrid.com/api/mail.send.json", options);

Does anyone have any idea or code to send emails with sendgrid using googl appscript?


Solution

  • Try the below code. It worked for me

       var SENDGRID_KEY ='Your API KEY';
    
      var headers = {
        "Authorization" : "Bearer "+SENDGRID_KEY, 
        "Content-Type": "application/json" 
      }
    
      var body =
      {
      "personalizations": [
        {
          "to": [
            {
              "email": "email id of the sender"
            }
          ],
          "subject": "Hello, World!"
        }
      ],
      "from": {
        "email": "From email id"
      },
      "content": [
        {
          "type": "text",
          "value": "Hello, World!"
        }
      ]
    }
    
      var options = {
    
        'method':'post',
        'headers':headers,
        'payload':JSON.stringify(body)
    
    
      }
    
    
     var response = UrlFetchApp.fetch("https://api.sendgrid.com/v3/mail/send",options);
    
    
     Logger.log(response); 
    

    Also ensure that the API key you created in SendGrid has the all the credentials it needs to send the email