Отправка простой электронной почты в Azure с помощью Sendgrid - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь отправить электронное письмо, используя SendGrid на Azure. Я следовал этим инструкциям: https://docs.microsoft.com/tr-tr/azure/sendgrid-dotnet-how-to-send-email; но это не похоже на работу. , Отправка через smtp работает, хотя.

using System;
using System.Threading.Tasks;
using SendGrid;
using SendGrid.Helpers.Mail;

namespace Example
{
    internal class Example
    {
        private static void Main()
        {
            Execute().Wait();
        }

        static async Task Execute()
        {
            var apiKey = System.Environment.GetEnvironmentVariable("SENDGRID_APIKEY");
            var client = new SendGridClient(apiKey);
            var msg = new SendGridMessage()
            {
                From = new EmailAddress("from@hotmail.com", "DX Team"),
                Subject = "Hello World from the SendGrid CSharp SDK!",
                PlainTextContent = "Hello, Email!",
                HtmlContent = "<strong>Hello, Email!</strong>"
            };
            msg.AddTo(new EmailAddress("to@gmail.com", "Test User"));
            var response = await client.SendEmailAsync(msg);
        }
    }
}

1 Ответ

0 голосов
/ 28 июня 2018

Согласно вашему примеру кода, он будет работать нормально, пока вы не получите письмо.

Так что обратите внимание на некоторые моменты, как показано ниже:

1.При создании ключа API убедитесь, что вы выбрали Полный доступ . enter image description here 2. Вы используете Gmail для получения электронной почты, поэтому установите « Разрешить менее безопасные приложения: ВКЛ. ». enter image description here 3. Проверьте ответ, если StatusCode равен Принято , это означает, что сообщение успешно отправлено. enter image description here Затем проверьте agian, и он может хорошо работать.

Кроме того, вы хотите создать функцию отправки электронной почты каждые 15 минут.

Вы можете сослаться на код, как показано ниже, я создаю функцию Azure в v1.

public static void Run([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer, [SendGrid(ApiKey = "sendgridkey")] out SendGridMessage message, TraceWriter log)
        {
            log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
            message = new SendGridMessage();
            message.AddTo("testto@gmail.com");
            message.AddContent("text/html", "Test body");
            message.SetFrom(new EmailAddress("testfrom@gmail.com"));
            message.SetSubject("Subject");

        }
...