我正在尝试转换从ASP.NET应用程序的数据库中获得的一些数据。到目前为止,我遇到了一个非常简单的框架来实现该功能,称为DocX。
https://www.nuget.org/packages/DocX/
因此,根据其API,我认为实现任务的最佳方法是首先制作文档并将其保存到服务器。然后将其作为流从服务器导入并附加到电子邮件。但是我很怀疑。
所以我去
var doc = DocX.Create("test.doc");
string f = "sdcdscdsc";
doc.InsertParagraph(f);
doc.Save();
这里发生两件事:
1)首先,我得到一个异常FileNotFoundException:无法加载文件或程序集'System.IO.Packaging 2)不知何故...当我尝试使用另一个框架执行此DocumentCore(https://www.nuget.org/packages/sautinsoft.document/)时,我猜想已安装了丢失的文件,并且Save()方法开始工作并保存该文件,但文件空白。>
老实说,我真的很感谢执行此任务的最佳实践。如果有人遇到过类似的任务,请分享使用的方法。
第二部分要容易一些。我对电子邮件部分进行了排序,但仍然不知道如何附加文件。到目前为止,代码看起来像这样:
private static void SendMail()
{
var mailMessage = new MailMessage("xxxxxx@gmail.com", "xxxxxx@gmail.com");
mailMessage.Subject = "Tester ";
mailMessage.Body = "This is the message";
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.Credentials = new System.Net.NetworkCredential()
{
UserName = "xxxxxxxx@gmail.com",
Password = "xxxxxxxxx"
};
client.EnableSsl = true;
client.Send(mailMessage);
}
总的来说,它是点点滴滴的,我非常感谢分享经验。非常感谢。
答案 0 :(得分:0)
第1部分-创建包含内容的文档
必须将DocXCore用于ASP.NET Core应用程序。
private void CreateDocument()
{
try
{
var doc = DocX.Create("mytest.docx");
doc.InsertParagraph("Hello my new message");
doc.Save();
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
第2部分-发送电子邮件
private void SendMail()
{
var mailMessage = new MailMessage("xxxxx@gmail.com", "yzolxxxxxotarev@gmail.com");
mailMessage.Subject = "Tester ASP.NET Boat Inspector";
mailMessage.Body = "This is the message";
var contentPath = _env.ContentRootPath+@"\mytest.docx";
Attachment data = new Attachment(contentPath, MediaTypeNames.Application.Octet);
mailMessage.Attachments.Add(data);
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.Credentials = new System.Net.NetworkCredential()
{
UserName = "xxxxx@gmail.com",
Password = "xxxxx"
};
client.EnableSsl = true;
client.Send(mailMessage);
}
效果很好。