Как отправить электронное письмо через Microsoft издатель в теле с помощью C # - PullRequest
1 голос
/ 23 февраля 2010

Привет, у меня новое требование. Как я могу отправить рассылку в теле контента по почте.

Бюллетень сделан из приложения Microsoft Publisher.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Спасибо

Ответы [ 2 ]

4 голосов
/ 26 февраля 2010

У Лахлана Роша отличный ответ. Я бы просто добавил, что вы можете подумать о выводе бюллетеня в Adobe Acrobat, или файл изображения, или HTML.

У большинства людей, на которых распространяется новостная рассылка, вероятно, не будет установлен Publisher. поэтому отправка им файла .pub может не дать желаемого эффекта.

Я предполагаю, что ваш клиент желает иметь возможность вызывать приложение Macro или Office внутри Издатель должен отправить рассылку, которую он написал, по электронной почте списку людей.

Код Lachlans позволит вам отправить электронное письмо, я предлагаю добавить шаг для экспорта информационный бюллетень в более универсальном формате. Я уверен, что вы можете использовать встроенный функции в Publisher из вашего кода для экспорта.

1 голос
/ 26 февраля 2010

Для отправки электронной почты в .NET используйте SmtpClient и MailMessage и Вложение классы.

Класс MailMessage представляет содержимое почтового сообщения. Класс SmtpClient передает электронную почту на хост SMTP, который вы назначаете для доставки почты. Вы можете создавать почтовые вложения, используя класс Attachment.

Предполагая, что у вас есть новостная рассылка HTML с отдельной таблицей стилей и изображениями, вам необходимо создать MailMessage с содержимым тела HTML и добавить внешние файлы в виде вложений. Вам нужно будет установить свойство ContentId каждого вложения и обновить ссылки в HTML, чтобы использовать это.

Для ссылки в теле HTML на вложение используется схема cid: . Для вложения с идентификатором "xyzzy", href - "cid: xyzzy".

Чтобы создать MailMessage с телом HTML:

        string content; // this should contain HTML

        // Create a message and set up the recipients.
        MailMessage message = new MailMessage(
           "from@example.com",
           "to@example.com");

        message.Subject = "The subject.";
        message.Body = content;
        message.IsBodyHtml = true;

Чтобы создать MailMessage с вложением:

        string file = "data.xls";

        // Create a message and set up the recipients.
        MailMessage message = new MailMessage(
           "from@example.com",
           "to@example.com");

        message.Subject = "The subject.";
        message.Body = "See the attached file";

        // Create  the file attachment for this e-mail message.
        Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
        data.ContentId = Guid.NewGuid().ToString();
        // Add time stamp iformation for the file.
        ContentDisposition disposition = data.ContentDisposition;
        disposition.CreationDate = System.IO.File.GetCreationTime(file);
        disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
        disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
        // Add the file attachment to this e-mail message.
        message.Attachments.Add(data);

Чтобы отправить MailMessage с SmtpClient:

        //Send the message.
        SmtpClient client = new SmtpClient(server);
        // Add credentials if the SMTP server requires them.
        client.Credentials = CredentialCache.DefaultNetworkCredentials;
        client.Send(message);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...