Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка файлов 
V
    Опции темы
lorents
  Дата 19.2.2009, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



не подскажите как можно сделать следующее
открыть окно отправки письма через программу, которая стоит по умолчанию, с уже вложенным файлом?
то есть ты не сам выбираешь этот файл а просто прописываешь вложить определенные файл и запустить программу для отправки писем, которая стоит по умолчанию?
и еще нет ли, как бы сказать, движка для отправки писем именно через мою программу
я находил парочку но меня там не все устраивает
1. поддержка кириллиц
2. можно было вложить файлы
3. показывал процесс отправки
  • соединение с интернетом (если возникает проблема то выдать соответственно ошибку об этом)
  • процесс уже отправки письма (если возникает проблема то выдать соответственно ошибку об этом)



--------------------
PM MAIL   Вверх
Akella
Дата 19.2.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(lorents @  19.2.2009,  13:59 Найти цитируемый пост)
открыть окно отправки письма через программу, которая стоит по умолчанию, с уже вложенным файлом?

Код

ShellExecute(Handle, 'open',
               PAnsiChar('mailto:[email protected];[email protected]?subject=Квартал eXpress (Ошибки и предложения)&Body='+
               'Пользователь: '+UserData.UserName+'%0D%0A'+
               'Код активации: '+GetRegistrationKeys+'%0D%0A'+
               'HardwareID: '+sLocalHardwareID+'%0D%0A'+
               Version.caption+' /Квартал eXpress '+' '+IsLocal+'/%0D%0A'+
               lbDBVersion.Caption+'%0D%0A'+
               lbReg.Caption+'%0D%0A'+
               '~~~~~~~~~~~~~~~~~~~~ТЕКСТ СООБЩЕНИЯ~~~~~~~~~~~~~~~~~~~~~~~~%0D%0A%0D%0A'+
               'Здравствуйте!%0D%0A%0D%0A'), nil, nil, SW_SHOWNORMAL);


Код

ShellExecute(Handle, 'open', PAnsiChar('http://www.ra-codecraft.com.ua'), nil, nil, SW_MAXIMIZE);


Код

ShellExecute(Handle, 'open', PAnsiChar('mailto: [email protected]?subject=Ошибки и предложения&Body='+UserData.UserName), nil, nil, SW_SHOWNORMAL);


Добавлено через 1 минуту и 52 секунды
Цитата(lorents @  19.2.2009,  13:59 Найти цитируемый пост)
и еще нет ли, как бы сказать, движка для отправки писем именно через мою программу

Indy. Информацию по инди ищи в разделе Delphi:Сети.

Это сообщение отредактировал(а) Akella - 19.2.2009, 14:19
PM MAIL   Вверх
cemick
Дата 19.2.2009, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: 2
Всего: 6



Есть три способа:
1. Использовать MAPI(большинство почтовых клиентов его поддерживает) http://msdn.microsoft.com/en-us/library/dd296734(VS.85).aspx 
2. Использовать ShellExecute   ShellExecute(0, '', PAnsiChar('mailto:' + ALink), '', '', sw_show)
   http://msdn.microsoft.com/en-us/library/aa767737(VS.85).aspx
3. Создать файл почтового клиента, и открыть его, опять же с помощью ShellExecute

.. м-дя уже опередили

Это сообщение отредактировал(а) cemick - 19.2.2009, 14:22
PM MAIL WWW   Вверх
Rais96
Дата 19.2.2009, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 1.2.2007

Репутация: нет
Всего: нет



Посмотри примеры к библиотеке Indy, я её использовал.
Кириллица и вложения там есть.
Процесс отправки и обработка ошибок - это зависит от твоих потребностей и фантазии.
PM MAIL   Вверх
Akella
Дата 19.2.2009, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(lorents @  19.2.2009,  13:59 Найти цитируемый пост)
соединение с интернетом (если возникает проблема то выдать соответственно ошибку об этом)

Код

procedure TfmUpdateInfo.tbInetConnectClick(Sender: TObject);
begin
    if not InternetAutoDial(INTERNET_AUTODIAL_FORCE_ONLINE,Handle) then begin
      Log('Ошибка подклчения к Интернет.');
      LOG(SysErrorMessage(GetLastError),false,true);
    end;
end;


PM MAIL   Вверх
cemick
Дата 19.2.2009, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: 2
Всего: 6



Пример использование MAPI:
Код


    MessRec : TMapiMessage;
    ReciverRec  : TMapiRecipDesc;
  FileRec: PMapiFileDesc;
  Hres: Cardinal;
  var i:Integer;
begin
   with ReciverRec do //информация о получатели
   begin
      lpszName:=PChar('mailto');
      lpszAddress:=PChar('');
      ulEIDSize:=0;
      lpEntryID:=nil;
      ulReserved:=0;
      ulRecipClass:=MAPI_TO;
   end;
   
   GetMem(FileRec,sizeof(TMapiFileDesc));// Информация о приаттаченных файлах
   try
     with FileRec^ do
     begin
       ulReserved:= 0;
       flFlags:= 0;
       nPosition:= Cardinal(-1); ;
       lpszPathName:= PAnsiChar(AFilePath);
       lpszFileName:= PAnsiChar(AAttachFileName);
       lpFileType:= nil;
     end;

     with MessRec do //Информация о сообщении
     begin
        ulReserved:=0;
        lpszSubject:=PChar(ASubject);
        lpszNoteText:=PChar(AMess);
        lpOriginator:=nil;
        nRecipCount:=1;
        lpRecips:=@ReciverRec;
        lpszMessageType:=nil;
        lpszDateReceived:=nil;
        lpszConversationID:= nil;
        flFlags:=0;
        nFileCount:=1;
        lpFiles:=FileRec;//@FileRec;
     end;
     //MapiSendDocuments(0,nil,nil,nil,0);
     //Вызыв диалогово окна отправки сообщения
     Hres := MapiSendMail(0,Application.Handle,MessRec, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION,0);
    if Hres > 1 then
       raise Exception.Create(Format('Ощибка открытия почтового клинета. Код ошибки: %s',[IntToStr(Hres)]));
   finally
    FreeMem(FileRec,sizeof(TMapiFileDesc));
   end
Код


;


Добавлено через 3 минуты и 8 секунд
протокол mailto не все почтовые клиенты одинаково понимают, щас уже не помню с каким именно были проблемы, но точно трудности есть
PM MAIL WWW   Вверх
lorents
Дата 19.2.2009, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



секундочку, я ща запутаюсь
скажу честно я от делфи далек, я изучаю другую программу, для создания тоже программ но не сложных
делфи как бы тока начал изучать
я хотел спросить что за библиотека Indy и можно мне отдельно скинуть мне только то что относится для отпарки писем?
и инструкцию, я сам буду разбираться что и как делать, коды не надо писать, хотя большое спасибо, я их отдельно сохраняю в текстовой файл на будущее, все равно мне это пригодится


Это сообщение отредактировал(а) lorents - 19.2.2009, 14:54


--------------------
PM MAIL   Вверх
Snowy
Дата 19.2.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Indy находится на панели компонент во вкладке Indy
Но тут есть проблема - нужно знать настройки SMTP сервера.
А их добровольно может ввести только пользователь (как он обычно делает при настройке почтового ящика в почтовой программе)

Добавлено через 1 минуту и 40 секунд
Цитата(cemick @  19.2.2009,  14:26 Найти цитируемый пост)
протокол mailto не все почтовые клиенты одинаково понимают
MAPI понимают гораздо меньше. А уж одинаково вообще еденицы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0853 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.