2010-02-23 1 views
1

Привет, у меня есть новое требование. Как я могу отправить информационный бюллетень в телеобъекте по почте.Как отправить электронную почту с помощью издателя Microsoft в теле с помощью C#

Информационный бюллетень изготовлен из приложения Microsoft Publisher.

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

Благодаря

+0

'mail.IsBodyHtml = true;'? –

+0

Как вы отправляете почту? – Ian

+0

Это новое требование. У меня нет опыта отправки почты с издателем microsoft. Поэтому я ищу в net/google для этого –

ответ

1

Чтобы отправить электронную почту в .NET, используйте SmtpClient и MailMessage и Attachment классы.

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

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

A href в теле HTML для прикрепления использует схему cid:. Для приложения с id «xyzzy» href является «cid: xyzzy».

Для построения MailMessage с HTML телом:

 string content; // this should contain HTML 

     // Create a message and set up the recipients. 
     MailMessage message = new MailMessage(
      "[email protected]", 
      "[email protected]"); 

     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(
      "[email protected]", 
      "[email protected]"); 

     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); 
4

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

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^