Создание и настройка содержимого электронной почты в C++ и отправка электронной почты с помощью SmtpClient
Создание нового сообщения электронной почты
Класс MailMessage представляет собой сообщение электронной почты и позволяет разработчикам создавать новое сообщение электронной почты. Основные свойства электронной почты, такие как От, Кому, Тема и тело, могут быть легко прикреплены к вновь созданному почтовому сообщению. Аналогично, мы можем сохранить почтовое сообщение в различных форматах, таких как EML, MSG и MHTML.
Шаги: Создание нового сообщения электронной почты в C#
- Создайте экземпляр класса MailMessage.
- Установите свойства почтового сообщения.
- Сохраните почтовое сообщение в различных форматах.
- Создайте экземпляр класса SmtpClient и отправьте электронное письмо с помощью метода Send.
Следующий кодовый фрагмент C++ показывает, как создать новое электронное письмо с различными свойствами.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// The path to the File directory. | |
System::String dataDir = RunExamples::GetDataDir_Email(); | |
// Create a new instance of MailMessage class | |
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>(); | |
// Set subject of the message, Html body and sender information | |
message->set_Subject(L"New message created by Aspose.Email for .NET"); | |
message->set_HtmlBody(System::String(L"<b>This line is in bold.</b> <br/> <br/>") + L"<font color=blue>This line is in blue color</font>"); | |
message->set_From(System::MakeObject<MailAddress>(L"from@domain.com", L"Sender Name", false)); | |
// Add TO recipients and Add CC recipients | |
message->get_To()->Add(System::MakeObject<MailAddress>(L"to1@domain.com", L"Recipient 1", false)); | |
message->get_To()->Add(System::MakeObject<MailAddress>(L"to2@domain.com", L"Recipient 2", false)); | |
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc1@domain.com", L"Recipient 3", false)); | |
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc2@domain.com", L"Recipient 4", false)); | |
// Save message in EML, EMLX, MSG and MHTML formats | |
message->Save(dataDir + L"CreateNewMailMessage_out.eml", SaveOptions::get_DefaultEml()); | |
message->Save(dataDir + L"CreateNewMailMessage_out.emlx", SaveOptions::CreateSaveOptions(MailMessageSaveType::get_EmlxFormat())); | |
message->Save(dataDir + L"CreateNewMailMessage_out.msg", SaveOptions::get_DefaultMsgUnicode()); | |
message->Save(dataDir + L"CreateNewMailMessage_out.mhtml", SaveOptions::get_DefaultMhtml()); |
Изменение адресов электронной почты на дружелюбные имена
Программные примеры, приведенные ниже, демонстрируют, как изменить адреса электронной почты на дружелюбные имена в сообщении электронной почты. Дружелюбное имя — это имя, которое более удобно для человека, чем адрес электронной почты, например, Джон Смит вместо js346@domain.com. При отправке электронной почты мы можем ассоциировать дружелюбное имя с адресом электронной почты в конструкторе класса MailMessage.
Чтобы изменить адреса электронной почты на дружелюбные имена в сообщении электронной почты, выполните следующие шаги:
- Создайте экземпляр класса MailMessage и укажите адреса электронной почты в полях Кому и От вместе с дружелюбными именами.
- Укажите адреса электронной почты Cc и Bcc вместе с дружелюбными именами, вызвав конструктор класса MailMessage в экземпляре MailMessage.
- Создайте экземпляр класса SmtpClient и отправьте электронную почту с помощью метода Send.
Следующий кодовый фрагмент показывает, как отобразить имена для адресов электронной почты.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
System::String dataDir = RunExamples::GetDataDir_Email(); | |
System::SharedPtr<MailMessage> message = MailMessage::Load(dataDir + L"test.eml"); | |
// A To address with a friendly name can also be specified like this | |
message->get_To()->Add(System::MakeObject<MailAddress>(L"kyle@to.com", L"Kyle Huang")); | |
// Specify Cc and Bcc email address along with a friendly name | |
message->get_CC()->Add(System::MakeObject<MailAddress>(L"guangzhou@cc.com", L"Guangzhou Team")); | |
message->get_Bcc()->Add(System::MakeObject<MailAddress>(L"ahaq@bcc.com", L"Ammad ulHaq ")); | |
message->Save(dataDir + L"MessageWithFrienlyName_out.eml", SaveOptions::get_DefaultEml()); |
Установка тела письма
Класс MailMessage представляет собой сообщение электронной почты. Экземпляры класса MailMessage используются для создания сообщений электронной почты, которые передаются на SMTP-сервер для доставки с использованием класса SmtpClient. Тело письма можно задать с помощью класса MailMessage. У электронной почты может быть несколько тел. В классе MailMessage есть два типа тел:
- HTML-тело
- Текстовое тело
Кроме HtmlBody и TextBody, Aspose.Email имеет еще два свойства только для чтения, относящихся к телу письма:
- IsBodyText: сообщает пользователю, является ли тело текстовым.
- IsBodyHtml: сообщает пользователю, является ли тело HTML или обычным текстом.
Эта статья показывает, как определить текст обыкновенного текста или HTML, установить альтернативный текст и закодировать тело электронной почты.
Установка HTML-тела
HtmlBody используется для указания HTML-содержимого тела сообщения. HtmlBody должен быть заключен между тегами . Следующий кодовый фрагмент показывает, как установить HTML-тело.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// Declare message as MailMessage instance | |
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>(); | |
// Specify HtmlBody | |
message->set_HtmlBody(L"<html><body>This is the HTML body</body></html>"); |
Установка альтернативного текста
Используйте класс AlternateView для указания копий сообщения электронной почты в другом формате. Например, если вы отправляете сообщение в HTML, вы также можете предоставить версию в обычном тексте на случай, если некоторые из получателей используют почтовые клиенты, которые не могут отображать HTML-контент. Этот класс имеет два свойства, LinkedResources и BaseUri, которые используются для разрешения URL-адресов в содержимом электронной почты.
- LinkedResources — это коллекция объектов LinkedResources. При рендеринге URL-адреса в содержимом электронной почты сначала сопоставляются с URL-адресами в ссылке на содержимое каждого объекта LinkedResources в коллекции LinkedResources и разрешаются.
- BaseUri используется почтовым читателем для разрешения относительных URL-адресов в теле, а также для разрешения относительных URL-адресов ссылок на содержимое в коллекции LinkedResources.
Следующий кодовый фрагмент C++ показывает, как установить альтернативный текст.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// Declare message as MailMessage instance | |
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>(); | |
// Creates AlternateView to view an email message using the content specified in the //string | |
System::SharedPtr<AlternateView> alternate = AlternateView::CreateAlternateViewFromString(L"Alternate Text"); | |
// Adding alternate text | |
message->get_AlternateViews()->Add(alternate); |