Заполнить письмо программно для почтовой программы по умолчанию.
Второй вариант - использование ОЛЕ-объектов. Тогда какие команды поддерживают и Аутглюк и мыш?
Могу сказать и глупость, но я бы на твоем месте вначале посмотрел бы полный синтаксис ссылки mailto:. Там вроде можно задавать и заголовок и тело письма.
Задача выглядит следующим образом - имеется некоторая структура - заголовок, тело письма. Мне хотелось бы, что бы пользователь мог из моей программы сформировать почтовое сообщение в почтовой программе установленной по умолчанию. Один вариант я знаю - открыть письмо и программно скопировать туда нужную информацию, симитировав Ctrl-C - Ctrl-V. Но мне кажется, что существует более изящное решение этой проблемы. Второй вариант - использование ОЛЕ-объектов. Тогда какие команды поддерживают и Аутглюк и мыш?
ShellExecute(Handle, "open",
"mailto:name@domen?subject=Тема&cc=ccname1@domen,ccname2@domen&bcc=
bccname@domen&body=Содеpжание",NULL, NULL,SW_SHOWNORMAL);
"mailto:name@domen subject=Тема body=Содеpжание",NULL, NULL,SW_SHOWNORMAL) - есстественно нифига у меня не вышло. Спасибо.
Хм... спасибо. Действительно, не учел, что вместо пробела надо использовать веб-синтаксис
А я тут потестировал немного, и косяк нашел. Если OE такую строку отрабатывает - все нормально, а если FL - тело сообщения затирается шаблоном. Интересно, как будет в Бате?
А я тут потестировал немного, и косяк нашел. Если OE такую строку отрабатывает - все нормально, а если FL - тело сообщения затирается шаблоном. Интересно, как будет в Бате?
Ну вот на 4 декабря мне нужно сдавать модуль, который будет использовать почту - сдам - расскажу. Я планирую все же использовать MAPI - там простор для творчества более широк - это здесь но не в каждом письме будет аттач, так что в просто письмах можно и ShellExecute использовать.
все проще пареной репы.
1 - создаешь файл с именем например test_mail.eml
2 - заполняешь его так... (см далее)
3 - запускаешь этот файл на выполнение ShellExecute и его обрабатывает почтовая программа по умолчанию.. далее пользователь дает команду "ОТПРАВИТЬ"
//--------------------------------------------
From: "admin" <admin@server.ru>
To: <ya@ya.ru>
Subject: 12345
Date: Tue, 30 Nov 2004 11:32:45 +0300
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0117_01C4D6D0.51826C20"
X-Priority: 3
X-MSMail-Priority: Normal
X-Unsent: 1
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
This is a multi-part message in MIME format.
------=_NextPart_000_0117_01C4D6D0.51826C20
Content-Type: text/plain;
charset="koi8-r"
Content-Transfer-Encoding: base64
Njc4OQ== (текст письма)
------=_NextPart_000_0117_01C4D6D0.51826C20
Content-Type: message/rfc822;
name="test.rar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="test.rar"
AHFURYTFMRYTIOPJH== (вложение)
------=_NextPart_000_0117_01C4D6D0.51826C20--
//--------------------------------------------
Думаю, сможешь подставить в нужные строки свой текст (от кого , кому, тема, название файла вложения)...
Главное- разделить переводом строк заголовок письма и ТЕЛО письма (X-MimeOLE - последняя строка заголовка) ТЕЛО письма идет через 2 перевода строки (\r\n\r\n) и для простоты - в кодировке
BASE64 - в Билдере есть такой компонент (ему нужно всего 2 потока - входящий -что нужно закодировать и исходящий, в который он сбрасывает результат кодировки)
4 - Как разделять обычный текст и вложения
см. внимательно :
- текст это (Njc4OQ==) - всместо этой строки подставляешь свой текст в BASE64
- вложение (AHFURYTFMRYTIOPJH==)- вместо этой строки подставляешь записываешь результат кодировки файла в BASE64 (ВНИМАНИЕ! вложение это не тип данных String - файл может быть гораздо больше по размеру!!) Вообще используй при построении письма потоки а не какие-нибудь там StringList ets...
Вообще, открой OutlookExpress , создай новое письмо с вложением, сохрани на рабочий стол как *.eml и открой в блокноте ты все поймешь и все увидишь сам.. (как поется в песенке:))
Ребята, не парьтесь со всякими там OLE- MIME
все проще пареной репы.
1 - создаешь файл с именем например test_mail.eml
2 - заполняешь его так... (см далее)
3 - запускаешь этот файл на выполнение ShellExecute и его обрабатывает почтовая программа по умолчанию.. далее пользователь дает команду "ОТПРАВИТЬ"
Подобные вещи я делал - и в целом это тоже выход - но, мне мало просто отправить письмо - мне нужно организовать работу с почтой - а работа предполагает взаимодействие с ПМ.
ТЕЛО письма идет через 2 перевода строки (\r\n\r\n) и для простоты - в кодировке
BASE64 - в Билдере есть такой компонент (ему нужно всего 2 потока - входящий -что нужно закодировать и исходящий, в который он сбрасывает результат кодировки)
Вот про компонент BASE64 по подробнее можно?
У меня 5-й, чего-то Я его не нашел...
Вот про компонент BASE64 по подробнее можно?
У меня 5-й, чего-то Я его не нашел...
Это Indy-компонент в 5 помоему он еще небыл включен - надо добавлять отдельно.
Mne ne nuzno posylat mail. Mne nuzno prosto sozdat pismo s attachmentom, i etu batvu otkryt' v defaultavom mail kliente.
nu tipa:
mailto:blablabla@blablabla.com?subject=Test....
i dalse vmesto tocek prikrepit fail(y).
Mozet kto znajet kak eto sdelat?