Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.20;
Скачать: CL | DM;

Вниз

Отправка почты   Найти похожие ветки 

 
Stas   (2002-12-18 12:10) [0]

Подскажите как программно отправить письмо.


 
Song ©   (2002-12-18 13:19) [1]

NMSMTP


 
Stas   (2002-12-18 14:13) [2]

Song, я не работал никогда в Дельфи с интернет, можно пожалуйта подробнее.


 
Song ©   (2002-12-18 16:30) [3]

Дык NMSMTP и на нём Ctrl+F1


 
myor   (2002-12-19 10:57) [4]

бери NMSMTP и хоть его свойства и события посмотри, тогда уже не скажешь, что с и-нетом не работал- там все просто:
указываешь хоста (ip машины-отправителя), хочешь- одного,
хочешь- целый список адресатов (бери из эдита(ов) или мемо, или откуда захочешь), по желанию задаешь боди сообщения (из мемо),
и отправляй.


 
UH   (2002-12-19 14:15) [5]

а злобный сисадмин отключил релай на серваке и у меня не уходят письма "наружу". Как быть?
А вот через аутлук уходят - что юзает последний? может и я так смогу?


 
Song ©   (2002-12-19 14:22) [6]

Раз через аутлук уходят значит надо подключаться к тому же хосту и порту, что и в аутлуке. Всё должно работать.


 
Андрей Д.   (2002-12-19 16:02) [7]

Это можно сделать при помощи MAPI.
Т.е. письмо будет отправлено средствами _почтовой_программы_по_умолчанию_ - со
всеми недостатками :) (например письмо будет помещено в папку "отправленные").
Зато без всяких там компонент и просто :)

Ниже готовая функция, в которой:
From - от кого
Dest - кому
Subject - тема
Text - текст письма
FileName - путь к вложению (если "", то соответственно ничего и не вкладываем)
Outlook - показывать или нет письмо перед отправкой (в твоём случае False)

Uses MAPI;
....
function SendMail(const From, Dest, Subject, Text, FileName: PChar;
Outlook: boolean):Integer;
var
Message: TMapiMessage;
Recipient, Sender: TMapiRecipDesc;
File_Attachment: TMapiFileDesc;

function MakeMessage: TMapiMessage;
begin
FillChar(Sender, SizeOf(Sender), 0);
Sender.ulRecipClass := MAPI_ORIG;
Sender.lpszAddress := From;

FillChar(Recipient, SizeOf(Recipient), 0);
Recipient.ulRecipClass := MAPI_TO;
Recipient.lpszAddress := Dest;

FillChar(File_Attachment, SizeOf(File_Attachment), 0);
File_Attachment.nPosition := Cardinal(-1);
File_Attachment.lpszPathName := FileName;

FillChar(Result, SizeOf(Result), 0);
with Message do begin
lpszSubject := Subject;
lpszNoteText := Text;
lpOriginator := @Sender;
nRecipCount := 1;
lpRecips := @Recipient;
nFileCount := 1;
lpFiles := @File_Attachment;
end;
end;

var
SM: TFNMapiSendMail;
MAPIModule: HModule;
MAPI_FLAG: Cardinal;
begin
if Outlook then
MAPI_FLAG:=MAPI_DIALOG
else
MAPI_FLAG:=0;
MAPIModule := LoadLibrary(PChar(MAPIDLL));
if MAPIModule = 0 then
Result := -1
else
try
@SM := GetProcAddress(MAPIModule, "MAPISendMail");
if @SM <> nil then begin
MakeMessage;
Result := SM(0, Application.Handle, Message, MAPI_FLAG, 0);
end else Result := 1;
finally
FreeLibrary(MAPIModule);
end;
end;


 
Донской   (2003-01-29 17:19) [8]

Странно, но почему-то не отправляет....
При этом если стоит outlook=false, то outlook показывает окошко, в котором запрашивается, разрешить ли программе отправлять письмо от имени Outlook или не разрешать (мол, это может быть вирус) и вне зависимолсти от занчения параметра outlook письо не доходит никуда (я отправляю пока только сам себе).
Есть еще вопрос - как сделать ТАК, чтобы письма, открываемые в Outlook, посланные компонентом TNMSMTP, были в нормальной кодировке?
А то какое бы значение свойству charset я не назначал, все равно закорючки.... Правда каждый раз разные ))))



Страницы: 1 вся ветка

Текущий архив: 2003.03.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-64080
mixamixa
2003-03-10 07:38
2003.03.20
Как вывести на принтер содержимое StringGrid1?


6-64259
Lusha
2003-01-31 17:30
2003.03.20
Sockets & TServiceApplication


14-64343
ZeroDivide
2003-03-04 16:22
2003.03.20
Да здравствуют отечественные военные кулеры!


1-64112
Test
2003-03-10 16:18
2003.03.20
Помогите отловить положение мыши вне формы!!!


1-64142
s.ts
2003-03-07 10:59
2003.03.20
TMemo.Lines.Count