Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Программирование —› Параметры команды mailto... как присоединить файл к письму?
Посл.ответ Сообщение

Ранг: 88.3 (постоянный), 3thx
Активность: 0.040
Статус: Участник

Создано: 27 июня 2007 12:19
· Личное сообщение · #1

Народ, сделующий вопрос, уже давно бьюсь над ним, решить никак не могу...

Возможно ли присоединить к письму файл с помощью mailto?

И еще, тоже не мало важный вопрос, если я через mailto в параметре &body передаю строку длинной килобайт 10, то клиент обрезает ее до 2 килобайт... почему так?

Как вообще можно передать письмо почтовому клиенту? Вроде что то там можно через DDE, направьте на правильный путь....



Ранг: 49.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 27 июня 2007 14:49
· Личное сообщение · #2

Enigma, ключевое слово MAPI. Через DDE ты сможешь работать только с теми почтовыми клиентами, которые это умеют. К тому же у каждого клиента будет своя реализация DDE (если будет вообще). В случае MAPI всё проще, так как это API стандартизированно.
По поводу mailto - скорее всего ограничение на длину команды, либо размер соответствующего буфера у почтового клиента.




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 27 июня 2007 18:59 · Поправил: s0larian
· Личное сообщение · #3

MAPI это если разговаривать с outlook/exchange. С другим клиентом это не работает.

С другой стороны, если ты хочешь сам отправлять мыло, то тебе надо реализовать SMTP протокол. Коннектишься к своему провайдеру на mail server, 25ый порт и делаешь примерно вот что:


220 arjuna.mindflip.com ESMTP Sendmail 8.9.3/8.9.3; Mon, 11 Oct 1999 04:22:25 GMT
HELO mindflip.com
250 arjuna.mindflip.com Hello arjuna.mindflip.com [206.50.17.92], pleased to meet you
MAIL FROM: matt@arjuna.mindflip.com
250 matt@arjuna.mindflip.com... Sender ok
RCPT TO: mindflip@mindflip.com
250 mindflip@mindflip.com... Recipient ok
DATA 354 Enter mail, end with "." on a line by itself
From: Matt
To: Mindflip User
Subject: Just saying hi
Date: 11 Oct 1999
I just wanted to say Hi.
.
250 EAA80467 Message accepted for delivery


Ну а про attachments - MIME encoding, и посылаешь как текст.



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 28 июня 2007 04:23
· Личное сообщение · #4

Enigma пишет:
Возможно ли присоединить к письму файл с помощью mailto?

В Outlook Express--невозможно, насколько мне известно.
А в MS Outlook (НЕ Express!)--вроде &attach=



Ранг: 49.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 28 июня 2007 08:50
· Личное сообщение · #5

s0larian, тот же TheBat тоже может работать с MAPI




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 28 июня 2007 18:51
· Личное сообщение · #6

ViSoR, как клиент, Bat разговаривает с exchange.



Ранг: 49.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 28 июня 2007 19:14
· Личное сообщение · #7

s0larian, хм, а как это у меня на машине, которая не входит в домен и использует обычные POP3/SMTP сервера для почты, работает MAPI? Читаем здесь: здесь http://en.wikipedia.org/wiki/Messaging_Application_Programming_Interface . Так как работать с Exchange не нужно, то нам нужно Simple MAPI.




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 28 июня 2007 20:16
· Личное сообщение · #8

ViSoR, эээ, ты прав - TheBat поддерживает Simple MAPI. Другие клиенты возможно тоже.

Я другое имел ввиду - полный MAPI использует только outlook и только с exchange.



Ранг: 49.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 28 июня 2007 21:12
· Личное сообщение · #9

s0larian, так ведь человеку нужно просто письмо с аттачем послать. Здесь Simple MAPI с избытком хватает.
Хотя, как говорилось выше, можно попробовать напрямую к SMTP серверу коннектится. Так вообще будешь зависить только от наличия интернета.



Ранг: 39.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 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



Ранг: 39.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 29 июня 2007 19:07
· Личное сообщение · #11

Не приаттачился с первого раза.

eef2_29.06.2007_CRACKLAB.rU.tgz - TMailSmtp.zip



Ранг: 88.3 (постоянный), 3thx
Активность: 0.040
Статус: Участник

Создано: 01 июля 2007 16:40
· Личное сообщение · #12

NetSpider Спасибо за исходник, но это "малость" не то...
Я наверное вопрос не совсем корректно задал.

У меня в приложение есть ссылка, которая позволяет отправить автору письмо, приложение - win32. Сейчас я передаю письмо клиенту через mailto, т.е. ShellExecute(0,'open', PChar('mailto:vasya@pupkin.ru'),nil,nil,SW_SHOW); т.е. после вызова функции откроется почтовый клиент и создасться письмо. Но таким путем я не могу передать большой объем информации (если например я встрою сюда параметр &body), вот в этом и проблема.

P.S. мне не нужно отправлять письмо, пользователь сам должен решать, отправить его или нет, мне нужно его просто создать в клиенте...



Ранг: 49.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 02 июля 2007 17:12
· Личное сообщение · #13

Enigma, тогда попробуй использовать Simple MAPI. В MSDN неплохо написано. В своё время встречал описание на русском.



Ранг: 88.3 (постоянный), 3thx
Активность: 0.040
Статус: Участник

Создано: 03 июля 2007 08:25
· Личное сообщение · #14

ViSoR пишет:
Enigma, тогда попробуй использовать Simple MAPI. В MSDN неплохо написано. В своё время встречал описание на русском.


Все, ключевое слово Simple MAPI и пример с мелкософтного сайта дали свои резульаты!
Огромное спасибо всем, разобрался!


 eXeL@B —› Программирование —› Параметры команды mailto... как присоединить файл к письму?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати