Форум: "Сети";
Текущий архив: 2002.09.19;
Скачать: [xml.tar.bz2];
Внизотправка e-mail через приложение Найти похожие ветки
← →
HrUsT (2002-07-12 11:37) [0]Братья по разуму, неужели только используя OUTLOOK-компоненты в Дельфи можно организовать отсылку сообщения? Или там через ShellExecute опять-таки аутлуку передать сообщение?
Мне просто текст нужно пересылать, без прикрепленных файлов.
← →
Skier (2002-07-12 11:44) [1]>HrUsT
Загляни сюда что ли
...:\...Delphi6\Demos\FastNet\Smtp\
← →
HrUsT (2002-07-12 21:17) [2]Спасибо, дельная вещь.
Правда, пока выдает кучу ошибок... даже при запуске исходной демки, когда пытаюсь отослать пробное послание, что-то все время ругается. Что-то с connect связано, хотя связь есть.
← →
mukha (2002-07-12 23:19) [3]В Help-е есть пример отправки сообщения. Найди через поиск по ключевому слову Message
или вот пример:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Psock, NMsmtp;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Memo1: TMemo;
NMSMTP1: TNMSMTP;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit4: TEdit;
Label4: TLabel;
Edit5: TEdit;
Label5: TLabel;
Label6: TLabel;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
procedure NMSMTP1Connect(Sender: TObject);
procedure NMSMTP1Success(Sender: TObject);
procedure NMSMTP1Disconnect(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
NMSMTP1.Host := Edit1.Text; //Почтовый сервер
NMSMTP1.UserID := Edit2.Text; //Идентификатор пользователя
NMSMTP1.PostMessage.ToAddress.Text := Edit3.Text; //Куда отправляется сообщение
NMSMTP1.PostMessage.FromAddress := Edit4.Text; //Адрес отправителя
NMSMTP1.PostMessage.Subject := Edit5.Text;; //Тема сообщения
NMSMTP1.PostMessage.Body.AddStrings(Memo1.Lines);
NMSMTP1.PostMessage.LocalProgram:="E-mail";
NMSMTP1.Connect; //Соединение с сервером
end;
procedure TForm1.NMSMTP1Connect(Sender: TObject);
begin
//Memo1.Lines.Add("Connected, sending message");
Memo2.Lines.Add("Соединение установлено. Выполняется отправка сообщения!");
NMSMTP1.SendMail; //Отправка сообщения
end;
procedure TForm1.NMSMTP1Success(Sender: TObject);
begin
Memo2.Lines.Add("Success, you didn""t press Button2 fast enough");
if NMSMTP1.Connected then //Если связь установлена с сервером - разорвать
NMSMTP1.Disconnect;
end;
procedure TForm1.NMSMTP1Disconnect(Sender: TObject);
begin
Memo2.Lines.Add("Disconnected");
end;
end.
← →
MARcoDEN (2002-07-14 11:09) [4]А можно и на API:
unit Email;
interface
uses Windows, SusUtils, Classes;
function SendEmail(const RecipName, RecipAddress, Subject, Attachment: string): Boolean;
function IsOnline: Boolean;
implementation
uses Mapi;
function SendEmail(const RecipName, RecipAddress, Subject, Attachment: string): Boolean;
var
MapiMessage: TMapiMessage;
MapiFileDesc: TMapiFileDesc;
MapiRecipDesc: TMapiRecipDesc;
i: integer;
s: string;
begin
with MapiRecipDesc do begin
ulRecerved:= 0;
ulRecipClass:= MAPI_TO;
lpszName:= PChar(RecipName);
lpszAddress:= PChar(RecipAddress);
ulEIDSize:= 0;
lpEntryID:= nil;
end;
with MapiFileDesc do begin
ulReserved:= 0;
flFlags:= 0;
nPosition:= 0;
lpszPathName:= PChar(Attachment);
lpszFileName:= nil;
lpFileType:= nil;
end;
with MapiMessage do begin
ulReserved := 0;
lpszSubject := nil;
lpszNoteText := PChar(Subject);
lpszMessageType := nil;
lpszDateReceived := nil;
lpszConversationID := nil;
flFlags := 0;
lpOriginator := nil;
nRecipCount := 1;
lpRecips := @MapiRecipDesc;
if length(Attachment) > 0 then begin
nFileCount:= 1;
lpFiles := @MapiFileDesc;
end else begin
nFileCount:= 0;
lpFiles:= nil;
end;
end;
Result:= MapiSendMail(0, 0, MapiMessage, MAPI_DIALOG
or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0) = SUCCESS_SUCCESS;
end;
function IsOnline: Boolean;
var
RASConn: TRASConn;
dwSize,dwCount: DWORD;
begin
RASConns.dwSize:= SizeOf(TRASConn);
dwSize:= SizeOf(RASConns);
Res:=RASEnumConnectionsA(@RASConns, @dwSize, @dwCount);
Result:= (Res = 0) and (dwCount > 0);
end;
end.
← →
Dark Lord (2002-07-15 07:28) [5]> MARcoDEN
Ты можешь обьяснить, как работает приведенный тобой код?
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.09.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c