Как я могу использовать extern html-файл для вложения в asp.net c # и отправить его на адрес электронной почты?

Как создать вложение электронной почты на C# и asp.net. Я хочу использовать html-файл, описывающий вложение, и я хочу, чтобы он загружался в виде строки сообщения в моем приложении. Чем я хочу, замените подстроки в этом сообщении другими значениями, которые я получаю из базы данных. Если вложение создано, я хочу отправить его на адрес.

Теперь я использую helpclass, но я думаю, что это не так: /

Я не знаю, существует ли она в .net libary. своего рода класс или что-то в этом роде.

Каков наилучший способ сделать это?

Вот как я это делаю сейчас: namespave = using SmtpMail = EASendMail.SmtpMail;

private void SendMail(string vorname, string nachname, string anrede, string firma, string benutzername, string passwort, string von, string bis, string email)
        {
            SmtpMail oMail = new SmtpMail("TryIt");
            SmtpClient oSmtp = new SmtpClient();

            oMail.From = email;

            oMail.To = email;

            oMail.Subject = "Company (" + nachname + ", " + vorname + ")";
            SmtpServer oServer = new SmtpServer(SMTPSERVER);

            try
            {
                Attachment header = oMail.AddAttachment(Properties.Settings.Default.ATT_header);
                Attachment footer = oMail.AddAttachment(Properties.Settings.Default.ATT_footer);
                Attachment left = oMail.AddAttachment(Properties.Settings.Default.ATT_left);
                Attachment right = oMail.AddAttachment(Properties.Settings.Default.ATT_right);
                Attachment world = oMail.AddAttachment(Properties.Settings.Default.ATT_world);
                Attachment company = oMail.AddAttachment(Properties.Settings.Default.ATT_company);
                Attachment weltkarte_header = oMail.AddAttachment(Properties.Settings.Default.ATT_weltkarte);

                string contentID_header = "header";
                header.ContentID = contentID_header;

                string contentID_footer = "footer";
                footer.ContentID = contentID_footer;

                string ContentID_left = "left";
                left.ContentID = ContentID_left;

                string ContentID_right = "right";
                right.ContentID = ContentID_right;

                string ContentID_world = "world";
                world.ContentID = ContentID_world;

                string ContentID_company = "company";
                company.ContentID = ContentID_company;

                string ContentID_weltkarte_header = "weltkarte_header";
                weltkarte_header.ContentID = ContentID_weltkarte_header;

                string htmltext = "<html><body><table width='1000px' border='0' cellpadding='0' cellspacing='0'>" +
                                    "<tr></tr>" +
                                    "<tr></tr>" +
                                    "<tr><table border='0' cellpadding='0' cellspacing='0'>" +
                                         "<tr>" +
                                             "<td></td>" +
                                             "<td width='880' style='background-color:#efefef;'>" +
                                                    "
Sie haben einen Gastzugang für [Anrede] [Vorname] [Nachname],[Firma] eingerichtet.

" + "
Im folgenden finden Sie die Zugangsdaten,
" + "die für die Anmeldung am Netzwerk benötigt werden.Weitere Informationen stehen auf der Anmeldeseite zur Verfügung.

" + "
Benutzername: [Benutzername]
Kennwort: [Passwort]

" + "
Der Zugang wird vom [ZeitVon] bis [ZeitBis] freigeschaltet sein.

" + "</td>" + "<td></td>" + "</tr>" + "</table></tr>" + "<tr></tr>" + "<tr></tr>" + "</table></body></html>"; htmltext = htmltext.Replace("[Anrede]", anrede).Replace("[Vorname]", vorname).Replace("[Firma]", firma).Replace("[Nachname]", nachname); htmltext = htmltext.Replace("[Benutzername]", benutzername).Replace("[Passwort]", passwort); htmltext = htmltext.Replace("[ZeitVon]", von).Replace("[ZeitBis]", bis); oMail.HtmlBody = htmltext; oSmtp.SendMail(oServer, oMail); } catch (Exception) { } }

UPDATE:

Теперь я создал html-файл с изображениями, но привязываю эти изображения с кодировкой base64. он работает, но если я прочитаю этот html в приложении C#, я не могу отправить эту почту. Я делаю брек-точку и смотрю в своей readstring, но все в порядке: /

здесь код:

...
SmtpMail oMail = new SmtpMail("TryIt");
            SmtpClient oSmtp = new SmtpClient();

            oMail.From = mail;

            oMail.To = mail;

            oMail.Subject = "company (" + lastname + ", " + firstname + ")";
            SmtpServer oServer = new SmtpServer(SMTPSERVER);

            try
            {


                using (StreamReader reader = new StreamReader(Server.MapPath("~/App_Data/zugangsmail.html"), System.Text.Encoding.Default))
                {
                    string message = reader.ReadToEnd();

                    message = message.Replace("[Anrede]", title).Replace("[Vorname]", firstname).Replace("[Firma]", company).Replace("[Nachname]", lastname);
                    message = message.Replace("[Benutzername]", username).Replace("[Passwort]", password);
                    message = message.Replace("[ZeitVon]", from).Replace("[ZeitBis]", to);

                    oMail.HtmlBody = message;
                    oSmtp.SendMail(oServer, oMail);
                }

            }
            catch (Exception ex)
            {
                error.Visible = true;
                lblErrorMessage.Text = ex.Message; 
            }
...
0
nl ja de
найдите класс httprequest на msdn для получения веб-страниц
добавлено автор Uğur Gümüşhan, источник

2 ответы

  1. Добавьте файл как внедренный ресурс.
  2. Откройте его и прочитайте содержимое
  3. Отправить содержимое.

var assembly = Assembly.GetExecutingAssembly();

using (var stream = asssembly.GetManifestResourceStream("namespace.folder.filename))
using (StreamReader reader = new StreamReader(stream))
{
     string result = reader.ReadToEnd();
}
0
добавлено
посмотрите на мое обновление: в первом методе он работает, но я не использую extern-файл, а во втором методе я использую extern-файл, но я не отправляю почту :( и я не получаю сообщение об ошибке .. ,
добавлено автор Tarasov, источник
Вы хотите отправить мне html? Я уверен, что проблема будет там, я хочу построить тестер, чтобы проверить его сам.
добавлено автор Amir Yonatan, источник
  1. Добавьте файл как внедренный ресурс.
  2. Откройте его и прочитайте содержимое
  3. Отправить содержимое.

var assembly = Assembly.GetExecutingAssembly();

using (var stream = asssembly.GetManifestResourceStream("namespace.folder.filename))
using (StreamReader reader = new StreamReader(stream))
{
     string result = reader.ReadToEnd();
}
0
добавлено
посмотрите на мое обновление: в первом методе он работает, но я не использую extern-файл, а во втором методе я использую extern-файл, но я не отправляю почту :( и я не получаю сообщение об ошибке .. ,
добавлено автор Tarasov, источник
Вы хотите отправить мне html? Я уверен, что проблема будет там, я хочу построить тестер, чтобы проверить его сам.
добавлено автор Amir Yonatan, источник
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)