Функция Azure, электронная почта sendgrid не получена - PullRequest
0 голосов
/ 24 мая 2019

У меня есть функция Azure, которая служит контактной формой для веб-сайта, кажется, что моя функция работает, возвращая 200 OK, но я не получаю электронное письмо.

Она использует привязку sendgrid Azure, сетку отправкине показывает активность, и целевой почтовый ящик ничего не получает.

Предполагая, что все мои ключи API верны, вот функция ниже

module.exports = async function (context, req) {
    if (req.body.email) {
        var message = {
            from: {
                email: req.body.email
            },
            subject: "Contact form submission from: " + req.body.name,
            content: [{
                type: 'text/plain',
                value: req.body.message
            }]
        };

        context.done(null, message);

        return {
            res: {
                status: 200
            },
            message: message
        };
    } else {
        return {
            res: {
                status: 400
            }
        };
    }
};

my function.json

{
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    },
    {
      "name": "message",
      "type": "sendGrid",
      "direction": "out",
      "apiKey" : "ASSUME_THIS_IS_CORRECT",
      "to": "$SomeoneTo@somewhere.tld",
      "from": "$someoneFrom@somewhere.tld",
      "subject": "Someone Mailed Ya!"
  }
  ]
}

мой host.json

{
  "version": "2.0",
  "extensions": {
      "sendGrid": {
          "from": "Full Name <$SomeoneFrom@somwhere.tld>"
      }
  }
}

Я дал ключ полного доступа к API-ключу, так что не очень уверен, что с этим?

1 Ответ

0 голосов
/ 30 мая 2019

Вот тот же код, который я пробовал:

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

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

и привязка была:

{
  "bindings": [
    {
      "type": "queueTrigger",
      "name": "order",
      "direction": "in",
      "queueName": "samples-orders"
    },
    {
      "type": "sendGrid",
      "name": "message",
      "direction": "out",
      "apiKey": "mysendgridkey",
      "from": "testfrom@gmail.com",
      "to": "testto@gmail.com"
    }
  ],
  "disabled": false
}

в Gmail, я разрешил доступ к менее безопасным приложениям

enter image description here

и все заработало.Попробуйте и посмотрите, работает ли он.

...