0
votes

I want to send emails from an Azure function (Javascript) using SendGrid. I have done the following

  1. created a new AppSettings for SendGrid API Key
  2. SendGrid output binding set of Azure Function
  3. Following is my Azure Function

 

    module.exports = function (context, myQueueItem) {
var message = {
         "personalizations": [ { "to": [ { "email": "[email protected]" } ] } ],
        from: { email: "[email protected]" },        
        subject: "Azure news",
        content: [{
            type: 'text/plain',
            value: myQueueItem
        }]
    };
    context.done(null, message);
};

But email is not getting send. Please provide some pointers

1
Could you provide your SendGrid binding?kamil-mrzyglod
Are there any errors returned by the API? I created a short PowerShell script for doing the same gist.github.com/kimpihlstrom/145304ebb00311270b3c6f7a99d4c606. Check it out, in case it's of any help.kim

1 Answers

3
votes

I test and face the same problem with you initially.

Please change to context.done(null, {message});

You could try to use the following code:

module.exports = function (context, order) {    
    context.log(order);
    var message = {
         "personalizations": [ { "to": [ { "email": "[email protected]" } ] } ],
        from: { email: "[email protected]" },        
        subject: "Azure news",
        content: [{
            type: 'text/plain',
            value: order
        }]
    };

    context.done(null, {message});
};

And the funtion.json file is:

{
  "bindings": [
    {
      "type": "queueTrigger",
      "name": "order",
      "direction": "in",
      "queueName": "samples-orders"
    },
    {
      "type": "sendGrid",
      "name": "message",
      "direction": "out",
      "apiKey": "mysendgridkey",
      "from": "[email protected]",
      "to": "[email protected]"
    }
  ],
  "disabled": false
}

Here I use the Gmail, so I also Allow less secure apps: ON

enter image description here

Click this link, you could configure it.