C#Core Builder.Attachments,附加Word,但附件后1页的原始文件变为4页

C#Core Builder.Attachments,附加Word,但附件后1页的原始文件变为4页,c#,asp.net,mailkit,C#,Asp.net,Mailkit,我正在使用ASP.NET Core 2.0,我正在尝试将Word文件附加到我的电子邮件中。电子邮件工作正常,但是我在附件上遇到了一些问题。 原始word文档只有1页,但在从收件人的邮箱附加和下载后,它开始有4页。第一页的一些文本已转到第二页和第三页 这是我的密码: public string TestSend() { var webRoot = _hostingEnvironment.WebRootPath; var pathToFile = "EmailTemplates"

我正在使用ASP.NET Core 2.0,我正在尝试将Word文件附加到我的电子邮件中。电子邮件工作正常,但是我在附件上遇到了一些问题。

原始word文档只有1页,但在从收件人的邮箱附加和下载后,它开始有4页。第一页的一些文本已转到第二页和第三页

这是我的密码:

public string TestSend()
{
  var webRoot = _hostingEnvironment.WebRootPath;
  var pathToFile = "EmailTemplates"
                   + Path.DirectorySeparatorChar.ToString()
                   + "Test.html";

  var builder = new BodyBuilder();
  using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile))
  {    
    builder.HtmlBody = SourceReader.ReadToEnd();    
  }
  string messageBody = string.Format(builder.HtmlBody,
                       "TEST",
                       "TEST",
                       "TEST",
                       "TEST",
                       "TEST" );    

   builder.HtmlBody = messageBody;
   builder.Attachments.Add(@"C:\Users\Test\Desktop\Test\Temp.docx");

   var message = new MimeMessage();
   message.From.Add(new MailboxAddress("Test", Test@test.com));
   message.To.Add(new MailboxAddress("Test", JustDemo@test.com));
   message.Cc.Add(new MailboxAddress("Test", Test@test.com));    

   message.Subject = "Test";
   message.Body = builder.ToMessageBody();               

   using (var client = new SmtpClient())
   {
     client.Connect("smtp.gmail.com", 587, false);
     client.Authenticate("test@test.com", "Test");
     client.Send(message);
     client.Disconnect(true);    
   }  

     return "a";    
}

尝试将内容传输编码强制为base64:

var attachment = (MimePart) builder.Attachments.Add ("C:\.....");
attachment.ContentTransferEncoding = ContentEncoding.Base64;

尝试将内容传输编码强制为base64:

var attachment = (MimePart) builder.Attachments.Add ("C:\.....");
attachment.ContentTransferEncoding = ContentEncoding.Base64;

没有
附件
类型,那么它的代码是什么?@jstedfast Hi,对不起。没有附件类型是什么意思?在上面的代码中,您有:
builder.Attachments.Add(new Attachment(…)
,但由于没有
Attachment
类,因此无法编译。@jstedfast很抱歉,我复制粘贴了错误的代码。新的附件不应该在那里。代码运行得很好,只是输出的word文档出错了。原始文件是1页,但后来变成了4页。没有
附件
类型,那么它的代码是什么?@jstedfast Hi,对不起。没有附件类型是什么意思?在上面的代码中,您有:
builder.Attachments.Add(new Attachment(…)
,但由于没有
Attachment
类,因此无法编译。@jstedfast很抱歉,我复制粘贴了错误的代码。新的附件不应该在那里。代码运行得很好,只是输出的word文档出错了。原始文件为1页,但后来变为4页。感谢您的帮助。但问题仍然存在:(哦,等等。老实说,它工作得很好。我意识到只有当我在谷歌Chrome上查看这个词时,错误才会发生,因为附件会发送到我的Gmail。当我在Gmail上查看它时,只有几页,当我下载它时,只有一页。你知道可能是什么问题吗?谷歌文档中的Bug?哈哈,可能是。非常感谢你的帮助。)我们的帮助感谢您的帮助。但问题仍然存在:(哦,等等。老实说,它工作得很好。我意识到只有当我在谷歌Chrome上查看这个词时,错误才会发生,因为附件会发送到我的Gmail。当我在Gmail上查看它时,只有几页,当我下载它时,只有一页。你知道可能是什么问题吗?谷歌文档中的Bug?哈哈,可能是。非常感谢你的帮助。)我们的帮助