public JsonResult CallEmailService(SendEmailData email)
        {
            Common.Data.JsonData json = new Common.Data.JsonData()
            {
                Result = true
            };
            //查询邮件账户
            EmailSystemSetting setting = RefreshAppSetting.GetSystemEmailAccount();
            IEmailDataService  es      = IocMvcFactoryHelper.GetInterface <IEmailDataService>();

            es.LogPath = InitAppSetting.LogPath;
            AppEmailData data = new AppEmailData()
            {
                Body    = email.Body,
                From    = setting.EmailAccount,
                Mailer  = email.Mailer,
                To      = email.To,
                Subject = email.Subject
            };

            if (!string.IsNullOrEmpty(email.SendTime))
            {
                data.SendTime = Convert.ToDateTime(email.SendTime);
            }
            json.Success    = es.SendEmail(setting, data, setting.Smtp);
            json.AttachData = email;
            return(Json(json));
        }
Example #2
0
        private async Task HandleRequestForDocumentEmailAsync(SendEmailData <RequestForDocumentData> result)
        {
            await _log.WriteInfoAsync("EmailRequestQueueConsumer", "HandleRequestForDocumentEmailAsync", null, $"DT: {DateTime.UtcNow.ToIsoDateTime()}" +
                                      $"{Environment.NewLine}{result.ToJson()}");

            var msg = await _emailGenerator.GenerateRequestForDocumentMsg(result.MessageData);

            await _smtpEmailSender.SendEmailAsync(result.EmailAddress, msg);
        }
        public Task ProduceSendEmailCommand <T>(string partnerId, string mailAddress, T msgData) where T : IEmailMessageData
        {
            var data = SendEmailData <T> .Create(partnerId, mailAddress, msgData);

            var msg = new QueueRequestModel <SendEmailData <T> > {
                Data = data
            };

            return(_queueExt.PutMessageAsync(msg));
        }
Example #4
0
        private async Task HandlePlainTextEmail(SendEmailData <PlainTextData> result)
        {
            await _log.WriteInfoAsync("EmailRequestQueueConsumer", "HandlePlainTextEmail", null, $"DT: {DateTime.UtcNow.ToIsoDateTime()}" +
                                      $"{Environment.NewLine}{result.ToJson()}");

            var msg = new EmailMessage
            {
                Body    = result.MessageData.Text,
                IsHtml  = false,
                Subject = result.MessageData.Subject
            };
            await _smtpEmailSender.SendEmailAsync(result.EmailAddress, msg, result.MessageData.Sender);
        }
Example #5
0
        public static void SendEmail([ActivityTrigger] SendEmailData emailData,
                                     [SendGrid(ApiKey = "SendGridKey")] out SendGridMessage message)
        {
            var approverEmail = new EmailAddress(emailData.Email);
            var senderEmail   = new EmailAddress(Environment.GetEnvironmentVariable("SenderEmail"));
            var subject       = "A task is awaiting approval";

            var host            = Environment.GetEnvironmentVariable("Host");
            var functionAddress = $"{host}/api/Approval/{emailData.Id}";
            var approvedLink    = functionAddress + "?result=Approved";
            var rejectedLink    = functionAddress + "?result=Rejected";
            var body            = $"<a href=\"{approvedLink}\">Approve</a><br>"
                                  + $"<a href=\"{rejectedLink}\">Reject</a>";

            message = MailHelper.CreateSingleEmail(senderEmail, approverEmail, subject, "", body);
        }
Example #6
0
        //点击发送时执行此函数
        public async void ThisPage_SendEmailRequested(object sender, SendEmailData e)
        {
            EmailPresenter.ThisPage.LoadingActivation(true, "正在发送...");

            //根据EmailSendType区分发送的邮件类型
            switch (e.SendType)
            {
            case EmailSendType.NormalSend:
            {
                MimeMessage SendMessage = GetSendMessage(e.To, new MailboxAddress(EmailService.CallName, EmailService.UserName), e.Subject, e.Text, e.Attachments);
                await EmailProtocolServiceProvider.GetInstance().SendEmailAsync(SendMessage);

                break;
            }

            case EmailSendType.Reply:
            {
                MimeMessage message      = (EmailPresenter.ThisPage.EmailList.SelectedItem as EmailItem).Message;
                MimeMessage ReplyMessage = GetReplyMessage(message, new MailboxAddress(EmailService.CallName, EmailService.UserName), e.Attachments, false, e.Text);
                await EmailProtocolServiceProvider.GetInstance().SendEmailAsync(ReplyMessage);

                break;
            }

            case EmailSendType.ReplyToAll:
            {
                MimeMessage message      = (EmailPresenter.ThisPage.EmailList.SelectedItem as EmailItem).Message;
                MimeMessage ReplyMessage = GetReplyMessage(message, new MailboxAddress(EmailService.CallName, EmailService.UserName), e.Attachments, true, e.Text);
                await EmailProtocolServiceProvider.GetInstance().SendEmailAsync(ReplyMessage);

                break;
            }

            case EmailSendType.Forward:
            {
                MimeMessage message        = (EmailPresenter.ThisPage.EmailList.SelectedItem as EmailItem).Message;
                MimeMessage ForwardMessage = GetForwardMessage(message, new MailboxAddress(EmailService.CallName, EmailService.UserName), e.To);
                await EmailProtocolServiceProvider.GetInstance().SendEmailAsync(ForwardMessage);

                break;
            }
            }
            await Task.Delay(1000);

            EmailPresenter.ThisPage.LoadingActivation(false);
        }