Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Заполнить письмо программно для почтовой программы по умолчанию.

1
29 ноября 2004 года
kot_
7.3K / / 20.01.2000
Задача выглядит следующим образом - имеется некоторая структура - заголовок, тело письма. Мне хотелось бы, что бы пользователь мог из моей программы сформировать почтовое сообщение в почтовой программе установленной по умолчанию. Один вариант я знаю - открыть письмо и программно скопировать туда нужную информацию, симитировав Ctrl-C - Ctrl-V. Но мне кажется, что существует более изящное решение этой проблемы. Второй вариант - использование ОЛЕ-объектов. Тогда какие команды поддерживают и Аутглюк и мыш?
10
29 ноября 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by kot_
Второй вариант - использование ОЛЕ-объектов. Тогда какие команды поддерживают и Аутглюк и мыш?


Могу сказать и глупость, но я бы на твоем месте вначале посмотрел бы полный синтаксис ссылки mailto:. Там вроде можно задавать и заголовок и тело письма.

246
29 ноября 2004 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by kot_
Задача выглядит следующим образом - имеется некоторая структура - заголовок, тело письма. Мне хотелось бы, что бы пользователь мог из моей программы сформировать почтовое сообщение в почтовой программе установленной по умолчанию. Один вариант я знаю - открыть письмо и программно скопировать туда нужную информацию, симитировав Ctrl-C - Ctrl-V. Но мне кажется, что существует более изящное решение этой проблемы. Второй вариант - использование ОЛЕ-объектов. Тогда какие команды поддерживают и Аутглюк и мыш?


 
Код:
С заполненым полями "Комy:", "Копия:", "Тема:", cодеpжание письма :

ShellExecute(Handle, "open",
"mailto:name@domen?subject=Тема&cc=ccname1@domen,ccname2@domen&bcc=
             bccname@domen&body=Содеpжание",NULL, NULL,SW_SHOWNORMAL);
1
29 ноября 2004 года
kot_
7.3K / / 20.01.2000
Хм... спасибо. Действительно, не учел, что вместо пробела надо использовать веб-синтаксис, я пытался формировать строку следующим образом - ShellExecute(Handle, "open",
"mailto:name@domen subject=Тема body=Содеpжание",NULL, NULL,SW_SHOWNORMAL) - есстественно нифига у меня не вышло. Спасибо.
10
29 ноября 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by kot_
Хм... спасибо. Действительно, не учел, что вместо пробела надо использовать веб-синтаксис


А я тут потестировал немного, и косяк нашел. Если OE такую строку отрабатывает - все нормально, а если FL - тело сообщения затирается шаблоном. Интересно, как будет в Бате?

1
29 ноября 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by smartsoft

А я тут потестировал немного, и косяк нашел. Если OE такую строку отрабатывает - все нормально, а если FL - тело сообщения затирается шаблоном. Интересно, как будет в Бате?


Ну вот на 4 декабря мне нужно сдавать модуль, который будет использовать почту - сдам - расскажу. Я планирую все же использовать MAPI - там простор для творчества более широк - это здесь но не в каждом письме будет аттач, так что в просто письмах можно и ShellExecute использовать.

2.3K
30 ноября 2004 года
ART-CODE
134 / / 15.11.2004
Ребята, не парьтесь со всякими там OLE- MIME
все проще пареной репы.
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 и открой в блокноте ты все поймешь и все увидишь сам.. (как поется в песенке:))
1
30 ноября 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by ART-CODE
Ребята, не парьтесь со всякими там OLE- MIME
все проще пареной репы.
1 - создаешь файл с именем например test_mail.eml
2 - заполняешь его так... (см далее)
3 - запускаешь этот файл на выполнение ShellExecute и его обрабатывает почтовая программа по умолчанию.. далее пользователь дает команду "ОТПРАВИТЬ"


Подобные вещи я делал - и в целом это тоже выход - но, мне мало просто отправить письмо - мне нужно организовать работу с почтой - а работа предполагает взаимодействие с ПМ.

246
30 ноября 2004 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by ART-CODE

ТЕЛО письма идет через 2 перевода строки (\r\n\r\n) и для простоты - в кодировке
BASE64 - в Билдере есть такой компонент (ему нужно всего 2 потока - входящий -что нужно закодировать и исходящий, в который он сбрасывает результат кодировки)


Вот про компонент BASE64 по подробнее можно?
У меня 5-й, чего-то Я его не нашел...

1
30 ноября 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by GIZMO

Вот про компонент BASE64 по подробнее можно?
У меня 5-й, чего-то Я его не нашел...


Это Indy-компонент в 5 помоему он еще небыл включен - надо добавлять отдельно.

1.9K
31 марта 2005 года
Underworld
68 / / 29.03.2004
U menia ciut drugoj vopros.
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?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог