簡體   English   中英

使用帶有MailKit的Html模板在.net核心應用程序中發送電子郵件

[英]Send email using Html template with MailKit in .net core application

我正在使用MailKit從.net核心應用程序發送電子郵件,它將成功發送。

但我想使用HTML模板在.Net核心中使用MailKit發送電子郵件。

以下是當前使用靜態正文部分發送電子郵件的代碼

 var emailMessage = new MimeMessage();
        if (!string.IsNullOrWhiteSpace(cc))
        {
            emailMessage.Cc.Add(new MailboxAddress(cc));
        }
        else if (!string.IsNullOrWhiteSpace(EmailUserNameCC))
        {
            emailMessage.Cc.Add(new MailboxAddress(EmailUserNameCC));
        }
        if (!string.IsNullOrWhiteSpace(EmailUserNameBCC))
        {
            emailMessage.Bcc.Add(new MailboxAddress(EmailUserNameBCC));
        }

        emailMessage.From.Add(new MailboxAddress(mailFrom));
        emailMessage.To.Add(new MailboxAddress(mailTo));
        emailMessage.Subject = subject;
        if (!string.IsNullOrWhiteSpace(replyTo))
        {
            emailMessage.InReplyTo = replyTo;
        }
        var builder = new BodyBuilder();// { TextBody = message };
        builder.HtmlBody = message;

        if (attachments != null && attachments.Count > 0)
        {
            foreach (var item in attachments)
            {
                builder.Attachments.Add(item.Key, item.Value);
            }

            builder.HtmlBody = builder.HtmlBody + " \n" + " PFA";

        }
        var multipart = new Multipart("mixed");
        multipart.Add(new TextPart("html") { Text = message });

        emailMessage.Body = builder.ToMessageBody();
        using (var client = new SmtpClient())
        {
            var credentials = new NetworkCredential
            {
                UserName = EmailUserName,
                Password = EmailPassword
            };

            if (!client.IsConnected)
            {
                client.Connect(SmtpHost, Convert.ToInt32(EmailHostPort));
                client.Authenticate(EmailUserName, EmailPassword);
            }
            client.MessageSent += c_EmailReached;

            client.Send(emailMessage);
        }

現在,我想使用HTML模板來替換正文部分。 那么如何在.Net Core中使用帶有MailKit的HTML模板呢?

額外:

- >使用html模板發送電子郵件后,實際電子郵件中也沒有顯示特殊字符。 對於某些特殊字符,它顯示 。 那么我怎么能解決這個問題呢?

謝謝。

您可以使用StreamReader讀取源文件並將其分配給builder.HtmlBody。

using (StreamReader SourceReader = System.IO.File.OpenText(path to your file))
{
   builder.HtmlBody = SourceReader.ReadToEnd();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM