Для отправки письма используется класс EmailMessage
. Чтобы использовать этот класс в нашем примере, надо сначала установить ссылку на пространство имен System.Messaging
, выполнив команду меню Project►Add Referenc
e. После этого можно пользоваться данным пространством имен при помощи ключевого слова using
:
using System.Messaging;
Код метода SendEmail()
, который будет отвечать за отправку письма, приведен в листинге 10.23.
private void SendEmail() {
// Создаем экземпляр класса EmailMessage
EmailMessage message = new EmailMessage();
// Тема письма
message.Subject = "Поздравление";
// Текст письма
message.BodyText = "Поздравляю с Днем Варенья!";
// Выбираем адресата
Recipient client = new Recipient(selContact.Email1Address);
message.To.Add(client);
// добавляем в письмо вложенный файл
Attachment image = new Attachment(@"\My Documents\My Pictures\Flower.jpg");
message.Attachments.Add(image);
message.Send("ActiveSync");
txtContact.Text = string.Empty;
menuSoftKey1.Text = "Контакты";
}
Итак, в методе SendEmail
объявляется и создается экземпляр класса EmailMessage
. В свойствах Subject
и BodyText
задаются тема и текст письма. Электронный адрес из выбранного контакта записывается в свойстве EmailMessage.То
. Для этого создается экземпляр класса Recipient
и передается свойство selContact.Email1Address
.
Теперь можно добавить в письмо вложенный файл. Для этого создается экземпляр класса Attachment
, которому в конструктор передается полное имя выбранного файла. После этого свойству EmailMessage.Attachment
передается значение экземпляра.
Теперь для отправки письма все готово. Следует вызвать метод message.Send
и очистить текстовое поле. Также надо восстановить в меню строку Контакты
. Так как для menuSoftKey1
используются два метода, SendEmail
и SelectContact
, то нужно определиться, когда какой метод следует использовать. Для этого нужно получить значение свойства menuSoftKey1.Text
, как показано в листинге 10.24.
private void menuSoftKey1Click(object sender, EventArgs e) {
if (menuSoftKey1.Text == "Послать")
SendEmail();
else
SelectContact();
}
Настало время проверить нашу программу. После запуска приложения надо выбрать адресата, которому предназначено письмо. Для отображения окна выбора контакта следует нажать кнопку Soft Key 1
. Можно выбрать любой контакт из имеющегося списка. После этого в текстовом поле появится выбранный контакт. При этом пункт меню обретет название Послать
.
Затем надо снова нажать кнопку Soft Key 1
. Кнопка Soft Key 1
примет первоначальный вид, в меню будет отображаться строка Контакт, а текстовое поле будет очищено. Выходим из программы. Но нам надо убедиться, что письмо было отправлено. Поэтому следует перейти на экран Сегодня
и нажать кнопку Пуск
, после чего активировать пиктограмму Сообщения
. В появившемся списке надо выбрать пункт Эл.п. Outlook
, а из пункта Меню
перейти в подменю Папки. Затем осталось перейти в папку Исходящие
. В ней должно находиться новое сообщение.
Мелочь, а приятно
В блоге blogs.msdn.com/anthonywong/, который ведет Энтони Вонг (Anthony Wong), я нашел несколько интересных заметок, рассказывающих об исправленных ошибках или улучшенных возможностях, которые стали доступны в Windows Mobile 5.0.
Метод Directory.Exists
На устройствах под управлением Windows СЕ 4.X метод Directory.Exists()
по-разному обрабатывал имена путей, которые заканчивались обратным слэшем. В качестве примера можно рассмотреть следующее выражение:
Directory.Exists("\\temp");
Это выражение возвращает значение True
, если папка temp
существует. Добавим в предыдущее выражение символ обратной черты.
Directory.Exists("\\temp\\")
Теперь данный метод возвратит False
, даже если папка существует. На устройствах под управлением Windows Mobile 5.0 платформа .NET Compact Framework исправила это противоречие, и теперь метод Directory.Exists()
возвращает True
вне зависимости от наличия замыкающего обратного слэша.