Сейчас на форуме: (+5 невидимых) |
![]() |
eXeL@B —› Программирование —› Параметры команды mailto... как присоединить файл к письму? |
Посл.ответ | Сообщение |
|
Создано: 27 июня 2007 12:19 · Личное сообщение · #1 Народ, сделующий вопрос, уже давно бьюсь над ним, решить никак не могу... Возможно ли присоединить к письму файл с помощью mailto? И еще, тоже не мало важный вопрос, если я через mailto в параметре &body передаю строку длинной килобайт 10, то клиент обрезает ее до 2 килобайт... почему так? Как вообще можно передать письмо почтовому клиенту? Вроде что то там можно через DDE, направьте на правильный путь.... ![]() |
|
Создано: 27 июня 2007 14:49 · Личное сообщение · #2 Enigma, ключевое слово MAPI. Через DDE ты сможешь работать только с теми почтовыми клиентами, которые это умеют. К тому же у каждого клиента будет своя реализация DDE (если будет вообще). В случае MAPI всё проще, так как это API стандартизированно. По поводу mailto - скорее всего ограничение на длину команды, либо размер соответствующего буфера у почтового клиента. ![]() |
|
Создано: 27 июня 2007 18:59 · Поправил: s0larian · Личное сообщение · #3 MAPI это если разговаривать с outlook/exchange. С другим клиентом это не работает. С другой стороны, если ты хочешь сам отправлять мыло, то тебе надо реализовать SMTP протокол. Коннектишься к своему провайдеру на mail server, 25ый порт и делаешь примерно вот что:
Ну а про attachments - MIME encoding, и посылаешь как текст. ![]() |
|
Создано: 28 июня 2007 04:23 · Личное сообщение · #4 |
|
Создано: 28 июня 2007 08:50 · Личное сообщение · #5 |
|
Создано: 28 июня 2007 18:51 · Личное сообщение · #6 |
|
Создано: 28 июня 2007 19:14 · Личное сообщение · #7 |
|
Создано: 28 июня 2007 20:16 · Личное сообщение · #8 |
|
Создано: 28 июня 2007 21:12 · Личное сообщение · #9 |
|
Создано: 29 июня 2007 19:01 · Поправил: NetSpider · Личное сообщение · #10 Может не в тему, но как сказал s0larian можно напрямую законектиться к SMTP серверу. Держи исходник на С++, который позволяет это сделать. Заюзаешь класс следующим образом #include <windows.h> #include "TMailSMTP.h" TMailSMTP SMTPClient; int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow) { SMTPClient.InitializeConnect(); if (SMTPClient.ConnectToHost("smtp.mail.ru")){ SMTPClient.SendMailAddress("твой ящик@x.ru","куда@x.ru"); SMTPClient.SendMailInfo("Привет из xxxx","твой ящик@mail.ru","куда@rambler.ru"); SMTPClient.SendMailMessage("Здравствуй программер! Это твоё письмо."); SMTPClient.SendMailFile("E:\Музыка\Rap ballads\Criss Tonino - The story.mp3"); SMTPClient.SendEndOfMessage(); }; SMTPClient.FreeConnect(); return 0; } Функцию SendMailFile можно вызывать несколько раз в зависимости от того, сколько файлов тебе надо прикрепить. Но на плохом коннекте класс может работать плохо. Там надо будет в коде изменить значение tmval.tv_sec ![]() |
|
Создано: 29 июня 2007 19:07 · Личное сообщение · #11 |
|
Создано: 01 июля 2007 16:40 · Личное сообщение · #12 NetSpider Спасибо за исходник, но это "малость" не то... Я наверное вопрос не совсем корректно задал. У меня в приложение есть ссылка, которая позволяет отправить автору письмо, приложение - win32. Сейчас я передаю письмо клиенту через mailto, т.е. ShellExecute(0,'open', PChar('mailto:vasya@pupkin.ru'),nil,nil,SW_SHOW); т.е. после вызова функции откроется почтовый клиент и создасться письмо. Но таким путем я не могу передать большой объем информации (если например я встрою сюда параметр &body), вот в этом и проблема. P.S. мне не нужно отправлять письмо, пользователь сам должен решать, отправить его или нет, мне нужно его просто создать в клиенте... ![]() |
|
Создано: 02 июля 2007 17:12 · Личное сообщение · #13 |
|
Создано: 03 июля 2007 08:25 · Личное сообщение · #14 |
![]() |
eXeL@B —› Программирование —› Параметры команды mailto... как присоединить файл к письму? |