コード例 #1
0
        public async Task <GeneralResponse> SendEmail(User user)
        {
            var roles = await _userManager.GetRolesAsync(user);

            var role             = roles.Contains(RoleConstants.APPLICANT) ? "Applicant" : "Client";
            var totalUsersInRole = await _userManager.GetUsersInRoleAsync(role);

            using (var client = new AmazonSimpleEmailServiceClient(new EnvironmentVariablesAWSCredentials(), RegionEndpoint.USWest2))
            {
                var sendRequest = new SendEmailRequest
                {
                    Source      = ConstantStrings.EMAIL_SENDER,
                    Destination = new Destination
                    {
                        ToAddresses =
                            new List <string> {
                            ConstantStrings.EMAIL_RECIEVER
                        }
                    },
                    Message = new Message
                    {
                        Subject = new Content("New user registration"),
                        Body    = new Body
                        {
                            Html = new Content
                            {
                                Charset = "UTF-8",
                                Data    = await _emailTemplate.NewUserTemplate(user)
                            },
                            Text = new Content
                            {
                                Charset = "UTF-8",
                                Data    = $"New {role} has just registered!" +
                                          $"Dear Admin," +
                                          $"This email was sent to you to notify when a user is registered on your website." +
                                          $"The new {role} with email {user.Email} became the {totalUsersInRole.Count + " "}{role} on your application!"
                            }
                        }
                    },
                };
                var emailResponse   = new SendEmailResponse();
                var generalResponse = new GeneralResponse();
                try
                {
                    emailResponse = await client.SendEmailAsync(sendRequest);

                    generalResponse.Succeeded = true;
                    return(generalResponse);
                }
                catch (Exception e)
                {
                    return(generalResponse.ErrorHandling <EmailSenderManager>(emailResponse.MessageId, objects: (sendRequest, e)));
                }
            }
        }