Преобразование в doc-файл в приложении ASP.NET Core и вложение doc-файла в электронную почту - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь преобразовать некоторые данные, полученные из базы данных, в мое приложение 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);
    }

В целом все по частям, и я был бы очень признателен за обмен опытом. Большое спасибо.

1 Ответ

0 голосов
/ 03 июля 2018

Часть 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);
    }

Хорошо работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...