Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
| | | | | | |
Пример 16.05.03 10:24 Число просмотров: 1143
Автор: whiletrue <Роман> Статус: Elderman
|
Допустим надо отправить на someadress@mail.ru
Открываешь 25 порт сервера получателя (mail.ru).
Пишешь туда типа:
EHLO myname
MAIL From: <me@me.com> SIZE=<размер мессаги>
RCPT To: <someadress@mail.ru>
DATA
<мессага>
QUIT
<пример мессаги>
Return-Path: <адрес>
To: <someadress@mail.ru>
Subject: subj
MIME-Version: 1.0
Content-type: multipart/mixed; boundary=--== sample by whiletrue ==--
From: <адрес>
----== sample by whiletrue ==--
Content-Transfer-Encoding: quoted-printable
Content-type: text/plain; charset=windows-1251
message text
----== sample by whiletrue ==--
Content-Type: audio/x-wav;
name="sample.wav"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="sample.wav"
UklGRjIAAABXQVZFZm10IBIAAAABAAEAIlYAACJWAAABAAgAKABmYWN0BAAAAAAAAABkYXRhAAAA
AA==
----== sample by whiletrue ==----
------
<конец мессаги>
где UklGRjIAAABXQVZFZm10IBIAAAABAAEAIlYAACJWAAABAAgAKABmYWN0BAAAAAAAAABkYXRhAAAA
AA== - это закодированный в base64 wave. Закодировать его можно, к примеру, с помощью CryptoAPI.
Может бывают и другие способы...
Пример не тестировался, поэтому скорее всего содержит ошибки. Я привел его здесь только для объяснения концепции.
Кто заметит ошибки, прошу поправить.
На мой взгляд - это проще, чем MAPI!
|
<beginners>
|
подскажите как послать mail при помощи c/c++ в Windows (api) ? 14.05.03 11:56
Автор: tdes <jin> Статус: Member
|
|
|
подскажите как послать mail при помощи c/c++ в Windows (api) ? 14.05.03 12:52
Автор: amirul <Serge> Статус: The Elderman
|
Если тебе просто надо коротенькую мессагу, то лучше прямо по SMTP через winsock. А если более менее серьезное приложение, то придется тебе изучать MAPI (ну или SimpleMAPI для начала) но это в двух словах не объяснить
|
| |
re 14.05.03 13:28
Автор: tdes <jin> Статус: Member
|
до MAPI я уже дошёл, мне просто нужно через ActiveX послать mail с аттачментом, на первый взгляд это не так уж и сложно, юзаем CDocuments и телемаркт )))
кстати, где в реджистри сидит настройка смтп ?
это нужно смотреть в ключе для почтовых программ или есть какое-то стандартное место ?
|
| | |
А зачем? 14.05.03 17:20
Автор: whiletrue <Роман> Статус: Elderman
|
> до MAPI я уже дошёл, мне просто нужно через ActiveX послать > mail с аттачментом, на первый взгляд это не так уж и > сложно, юзаем CDocuments и телемаркт ))) > кстати, где в реджистри сидит настройка смтп ? > это нужно смотреть в ключе для почтовых программ или есть > какое-то стандартное место ?
А зачем тебе это все? Атачмент просто кодируешь в base64 и кладешь его прямо в свое письмо. Ну при условии, что всякие Content-Type и прочая фигня правильно указаны - посмотри на примере какого-нибудь сообщения - в его исходник глянь.
Или я что-то не так понял?
|
| | | |
А зачем? 14.05.03 20:03
Автор: tdes <jin> Статус: Member
|
есть ActiveX ( смотри ссылку), который занимается отправкой голосовой почты (wav как атачмент), для того, чтобы он работал, конечный юзер должен вручную ввести smtp настройки, но не каждый конечный юзер знает что такое smtp, поэтому хотелось бы либо средствами винды(MAPI ?) отправить мейл, либо взять настройки smtp из registry.
может кто знает как сделать лучше ?
voicemail ActiveX
|
| | | | |
А зачем? 15.05.03 16:34
Автор: whiletrue <Роман> Статус: Elderman
|
> есть ActiveX ( смотри ссылку), который занимается отправкой > голосовой почты (wav как атачмент), для того, чтобы он > работал, конечный юзер должен вручную ввести smtp > настройки, но не каждый конечный юзер знает что такое smtp, > поэтому хотелось бы либо средствами винды(MAPI ?) отправить > мейл,
Так значит этот ActiveX может выдать тебе в программу wave, или он все же умеет только записывать и тут же сам слать?
В первом случае получаешь этот wave, кодируешь, вкладываешь прямо в мессагу, делаешь нужные пасы с мессагой и шлешь через сокет.
Во втором случае тебе по-любому даже MAPI не поможет. Тогда смотри на
HKEY_CURRENT_USER/Software/Microsoft/Internet Account Manager - это настройка OutlookExpress, но юзер может пользоваться тем же Батом, тогда придется все-таки запрашивать настройки... А если у него несколько ящиков?..
>либо взять настройки smtp из registry.
> может кто знает как сделать лучше ?
|
| | | | | |
А зачем? 15.05.03 19:59
Автор: tdes <jin> Статус: Member
|
> В первом случае получаешь этот wave, кодируешь, вкладываешь > прямо в мессагу, делаешь нужные пасы с мессагой и шлешь > через сокет. я умею получтать при помощи ActiveX файл, но пока я так и не понял как его преобразовать и послать через сокет, то есть я не хочу весь smtp протокол реализовывать, а по другому не вижу как это сделать. Наверняка есть более простые пути, как скажем в никсах sendmail.
можно расшифровать, что значит кодируешь ?
|
| | | | | | |
Пример 16.05.03 10:24
Автор: whiletrue <Роман> Статус: Elderman
|
Допустим надо отправить на someadress@mail.ru
Открываешь 25 порт сервера получателя (mail.ru).
Пишешь туда типа:
EHLO myname
MAIL From: <me@me.com> SIZE=<размер мессаги>
RCPT To: <someadress@mail.ru>
DATA
<мессага>
QUIT
<пример мессаги>
Return-Path: <адрес>
To: <someadress@mail.ru>
Subject: subj
MIME-Version: 1.0
Content-type: multipart/mixed; boundary=--== sample by whiletrue ==--
From: <адрес>
----== sample by whiletrue ==--
Content-Transfer-Encoding: quoted-printable
Content-type: text/plain; charset=windows-1251
message text
----== sample by whiletrue ==--
Content-Type: audio/x-wav;
name="sample.wav"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="sample.wav"
UklGRjIAAABXQVZFZm10IBIAAAABAAEAIlYAACJWAAABAAgAKABmYWN0BAAAAAAAAABkYXRhAAAA
AA==
----== sample by whiletrue ==----
------
<конец мессаги>
где UklGRjIAAABXQVZFZm10IBIAAAABAAEAIlYAACJWAAABAAgAKABmYWN0BAAAAAAAAABkYXRhAAAA
AA== - это закодированный в base64 wave. Закодировать его можно, к примеру, с помощью CryptoAPI.
Может бывают и другие способы...
Пример не тестировался, поэтому скорее всего содержит ошибки. Я привел его здесь только для объяснения концепции.
Кто заметит ошибки, прошу поправить.
На мой взгляд - это проще, чем MAPI!
|
| | | | | | | |
концепцию понял, вопрос тогда, зачем нужны smtp сервера ? только чтобы хранить почту ? 22.05.03 13:02
Автор: tdes <jin> Статус: Member Отредактировано 22.05.03 13:05 Количество правок: 1
|
|
| | | | | | | | |
чтобы принять сообщение от smtp-клиента и доставить по адресу 22.05.03 13:15
Автор: whiletrue <Роман> Статус: Elderman Отредактировано 22.05.03 13:22 Количество правок: 1
|
Ну плюс фичи - такие как: пытаться доставить письмо каждые n-минут, если оное не было доставлено, и т.д.
Кстати, посмотри как работает MDaemon - это smtp/pop3 сервер под Форточками. Он все свои действия в логах прописывает. А главное ему не нужны smtp-настройки, чтобы доставлять письма, т.к. он сам smtp-сервер.
|
| | | | | | | | | |
чтобы принять сообщение от smtp-клиента и доставить по адресу 22.05.03 13:18
Автор: tdes <jin> Статус: Member
|
но тоже самое может сделать и client - открыть сокет на 25 порт и запихать туда все что надо, поскольку это работает над tcp доставка гарантирована.
|
| | | | | | | | | | |
есть подводные камни 22.05.03 13:34
Автор: whiletrue <Роман> Статус: Elderman
|
> но тоже самое может сделать и client - открыть сокет на 25 > порт и запихать туда все что надо, поскольку это работает > над tcp доставка гарантирована.
например, определение на какой конкретно сервак нужно доставить, т.к., допустим, адрес adr@list.ru будет обслуживать сервер mail.ru, а не list.ru, как хотелось бы.
Хотя, там amirul предлагал как-то доставлять простенькие сообщения через сокет. Может его спросим? Ну, а доставлять будем не простенькие сообщения, а со вложением.
|
| | | | | | | | | | | |
на мой взгляд с этим вполне справится DNS 22.05.03 13:44
Автор: tdes <jin> Статус: Member
|
|
| | | | | | | | | | | | |
Вообще да 22.05.03 14:33
Автор: amirul <Serge> Статус: The Elderman
|
Именно она этим и занимается, только обычная развязка <доменное имя> -> IP производится с использованием одних DNS записей (тип A), а развязка домен -> <сервак, который может отрелеить почту в этот домен> - в записях MX.
Но это нужно скорее для сервака. Для простого смертного можно в качестве SMTP прописать сервер провайдера (оставить для настройки юзеру) и по SMTP-же протоколу пихать туда данные. А он уж сам найдет куда отрелеить почту.
Ну а с аттачами тоже все довольно просто. Во первых есть стандарт MIME (rfc какой-то - лень щас искать), а во вторых, даже если лень реализовывать base64 кодирование - есть куча библиотек, которые этим занимаются.
|
| | | | | | | | | | | | | |
Дык весь сыр-бор из-за чего 22.05.03 14:42
Автор: whiletrue <Роман> Статус: Elderman
|
> Именно она этим и занимается, только обычная развязка > <доменное имя> -> IP производится с использованием > одних DNS записей (тип A), а развязка домен -> > <сервак, который может отрелеить почту в этот домен> > - в записях MX. > > Но это нужно скорее для сервака. Для простого смертного > можно в качестве SMTP прописать сервер провайдера (оставить > для настройки юзеру) и по SMTP-же протоколу пихать туда > данные. А он уж сам найдет куда отрелеить почту. >
Предполагается, что юзер не представляет ничего про адрес своего провайдера и задать его не может.
> Ну а с аттачами тоже все довольно просто. Во первых есть > стандарт MIME (rfc какой-то - лень щас искать), а во > вторых, даже если лень реализовывать base64 кодирование - > есть куча библиотек, которые этим занимаются.
На русском: http://bitcase.h1.ru/index.php?di=b&s=rus/network/mail&d=&p=mime.html
|
| | |
Какая именно настройка 14.05.03 14:01
Автор: amirul <Serge> Статус: The Elderman
|
> до MAPI я уже дошёл, мне просто нужно через ActiveX послать > mail с аттачментом, на первый взгляд это не так уж и > сложно, юзаем CDocuments и телемаркт ))) Ну в мапи я не спец. Хотя и есть нехилая книжень по этому делу. Посмотрел я что HelloMapi (типа hello, world для мапи - пример проги) занимает около 30 листов и решил, что мапи мне пока не горит а изучать такое для самообразования не захотелось.
> кстати, где в реджистри сидит настройка смтп ? Сабж
> это нужно смотреть в ключе для почтовых программ или есть Если сервак:порт и так далее, то каждая прога хранит свою настройку. Бат тот вообще хранит это в конфиг файлах. Зато и мыло с настройками выживает после переустановки винды или переноса на другой комп.
> какое-то стандартное место ?
|
| | | |
re:Какая именно настройка 14.05.03 20:32
Автор: tdes <jin> Статус: Member
|
а как насчёт этого:
HKCU\software\microsoft\internet account manager\accounts\
?
(w2k)
|
| | | | |
Не знаю что за зверь 15.05.03 13:55
Автор: amirul <Serge> Статус: The Elderman
|
> а как насчёт этого: > HKCU\software\microsoft\internet account manager\accounts\ > ? > (w2k) Может там и валяется, но The Bat там или встроенный клиент в Opera хранят свои настройки вообще не в реестре, а в конфиг-файлах. Так что можно предусмотреть стандартные почтовики, а если юзер пользует что нить нестандартное, то скорее всего он знает что такое smtp
|
|
|