通过带有SES的AWS Lambda发送电子邮件到C#

问题描述 投票:0回答:1

[我已经使用Visual Studio和C#和.net core1.0创建了一个AWS Lambda函数

我必须对Lambda函数进行一些操作后才能发送电子邮件。我的代码如下。取自AWS Doc

using Amazon.DynamoDBv2;
using Amazon.DynamoDBv2.Model;
using Amazon.Lambda.Core;
using System;
using System.Collections.Generic;
using Amazon.SimpleEmail;
using Amazon.SimpleEmail.Model;
using Amazon;

namespace MyProject
{
    public class AddAlarms
    {
        private static AmazonDynamoDBClient client = new AmazonDynamoDBClient();

        public string AddAlarmsHandler(GetUserAlerts input, ILambdaContext context)
        {

            var client = new AmazonSimpleEmailServiceClient(RegionEndpoint.USEast1);
            List<string> toAddress = new List<string>();
            toAddress.Add("[email protected]");

            var sendRequest = new SendEmailRequest
            {
                Source = "[email protected]",
                Destination = new Destination
                {
                    ToAddresses = toAddress
                },
                Message = new Message
                {
                    Subject = new Content("Subject of email"),
                    Body = new Body
                    {
                        Html = new Content
                        {
                            Charset = "UTF-8",
                            Data = "Hello Email, HTML Body"
                        },
                        Text = new Content
                        {
                            Charset = "UTF-8",
                            Data = "Hello email, Text Body"
                        }
                    }
                },
                ConfigurationSetName = "ConfigSet"
            };
            string returnval = string.Empty;
            try
            {
                Console.WriteLine("Sending email using Amazon SES...");
                returnval += "Sending email using Amazon SES...";
                var response = client.SendEmailAsync(sendRequest);
                System.Threading.Thread.Sleep(5000);
                returnval += ", Response Status - " + response.Status.ToString() + " - ";
                Console.WriteLine("The email was sent successfully.");
                returnval += "The email was sent successfully.....";
            }
            catch (Exception ex)
            {
                returnval += "The email was not sent.";
                Console.WriteLine("The email was not sent.");
                returnval += "Error message: " + ex.Message;
                Console.WriteLine("Error message: " + ex.Message);
            }

            return returnval;
        }
    }
}

因此Lambda函数成功创建,并在Lambda部分显示到AWS中

所以在测试此功能时,我得到发送后的响应-“ Faulted”收件人未收到电子邮件。

我已将电子邮件TO和FROM都验证为AWS SES的电子邮件验证。

我得到一个可以成功运行的Node.Js代码,并且还接收了我从link中获取的电子邮件和node.js代码

我已经检查了ROLE并为Node.Js代码使用了相同的角色,并且工作正常,但是对于C#lambda函数,我得到的响应为“错误”。

请帮助解决AWS Lambda中的此问题

c# node.js amazon-web-services lambda amazon-ses
1个回答
0
投票

我有相同的情况,其中节点js电子邮件收到带有C#lambda的BUT,但我没有收到电子邮件。 Lambda执行无错误,但未收到电子邮件。

© www.soinside.com 2019 - 2024. All rights reserved.