Страница 1 из 1

Запуск Pocket Outlook для отправки e-mail

Добавлено: 26.06.2009 17:22
Blaze
Запуск Pocket Outlook из приложения для отправки электронной почты.

Для решения задачи необходимо запустить файл \Windows\tmail.exe, который является не чем иным как исполняемым файлом Pocket Outlook, и передать ему ряд параметров, которые бы указали, что следует открыть форму редактирования письма. Эти параметры подозрительно напоминают аналогичные из HTML :-)
mailto:mail@mail.info?subject=This is subject&body=This is body

Итак, задача свелась к запуску нового процесса:

Код: Выделить всё

using System.Diagnostics;

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "\\windows\\tmail.exe";
psi.Arguments = "mailto:" + txtEmail.Text + "?subject=" + txtSubject.Text +"&body=" + txtBody.Text;
psi.UseShellExecute = true;
Process.Start(psi);
Есть и другой вариант, более похожий на стандартную передачу параметров Windows-приложению.
Для этого используются параметры
-to "<e-mail>" адрес отправителя
-сс "<e-mail>" копия
-bcc "<e-mail>" скрытая копия
-subject "<subject>" тема сообщения
-body "<body>" текст сообщения
-attach "<file name>" файл вложения
-service "<account name>" Имя учетной записи с помощью которой будет создано сообщение. В случае если service не указан и существует более одной учетной записи пользователю будет предложено выбрать учетную запись.

В этом случае строку параметров можно будет создать примерно так:

Код: Выделить всё

private string CreateAgruments()
{
    StringBuilder args = new StringBuilder();
    args.AppendFormat(null, "-attach \"{0}\" ", txtAttachment.Text);
    args.AppendFormat(null, "-to \"{0}\" ", txtEmail.Text);
    args.AppendFormat(null, "-subject \"{0}\" ", txtSubject.Text);
    args.AppendFormat(null, "-body \"{0}\" ", txtBody.Text);
    return args.ToString();
}
Полный пример вы можете скачать здесь: POutlookTest.zip (11 KB)

Александр Игнатьев,
_http://www.vestace.ru_