c# - 在 C# 中使用 SmtpClient 发送电子邮件时出现问题

标签 c# asp.net-mvc

我有一个 ASP.Net/MVC 应用程序,我正在尝试发送 HTML 电子邮件。我通过读取带有标记的 HTML 文件,然后替换标记来执行此操作。那部分很好,生成的 HTML 正是我想要的,但是当我发送电子邮件时,我收到的看起来像 -

<style type=3D"text/css">=
=0D=0A.styleTitles=0D=0A{=0D=0Afont-weight:=bold;=0D=0A}=0D=0A 
.style1=0D=0A        {=0D=0A 

应该看起来像

    <style type="text/css">
    .styleTitles
    {
        font-weight: bold;
    }
    .style1
    {
        height: 15px;
    }

我在网上看过,但似乎找不到发送消息的正确语法。我见过一些解决方案,但似乎都没有用。

我目前的测试代码是-

SmtpClient smtpclient = new SmtpClient();
MailMessage message = new MailMessage();

MailAddress SendFrom = new MailAddress("xxxx@abc.com");
MailAddress SendTo = new MailAddress("zzzz@gmail.com");
MailMessage MyMessage = new MailMessage(SendFrom, SendTo);

var plainView = AlternateView.CreateAlternateViewFromString(msgBody,null,"text/html");
plainView.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
MyMessage.AlternateViews.Add(plainView);
MyMessage.IsBodyHtml = true;
MyMessage.Subject = subjectLine;
MyMessage.Body = msgBody;
smtpclient.Send(MyMessage);

有什么建议吗?

最佳答案

也许是这样的:

var plainView = AlternateView.CreateAlternateViewFromString(msgBody, new ContentType("text/plain; charset=UTF-8"));

MyMessage.AlternateViews.Add(plainView);
MyMessage.BodyEncoding = Encoding.UTF8;
MyMessage.IsBodyHtml = true;
MyMessage.Subject = subjectLine;
MyMessage.Body = msgBody;

关于c# - 在 C# 中使用 SmtpClient 发送电子邮件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1456815/

相关文章:

javascript - 如何在 ASP.NET MVC 项目中组织前端 JavaScript 代码?

c# - 如何更改 Request.RawUrl 属性?

asp.net-mvc - 如何打开 Bootstrap 模式而不回发?

asp.net-mvc - 如何使用 ASP.NET MVC 的最小起订量模拟 Request.ServerVariables?

c# - 从数据库中获取数据并显示在DataGridView中

c# - Webservice动态调用+获取原始数据

X 轴数据时间的 C# 图表缩放问题

c# - 使用 Lambda 删除重复项

c# - 领域驱动设计中的验证

javascript - ASP.NET MVC 复选框上的灰色字段 = true