sergio0001 Гость
|
Добавлено: Чт Июл 24 2003 14:12 Заголовок сообщения: Re: Дел |
|
|
Вот компонентик, но он помоему отправляет посредством Outlook Express. В делфи есть компонентики на странице FastNet: NMPop3 и NMSMTP для получки и отправки соответственно, хотя, говорят, глючат
unit MapiControl;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type { Вводим новый тип события для получения Errorcode } TMapiErrEvent = procedure(Sender: TObject; ErrCode: Integer) of object;
TMapiControl = class(TComponent) constructor Create(AOwner: TComponent); override; destructor Destroy; override; private { Private-объявления } FSubject: string; FMailtext: string; FFromName: string; FFromAdress: string; FTOAdr: TStrings; FCCAdr: TStrings; FBCCAdr: TStrings; FAttachedFileName: TStrings; FDisplayFileName: TStrings; FShowDialog: Boolean; FUseAppHandle: Boolean; { Error Events: } FOnUserAbort: TNotifyEvent; FOnMapiError: TMapiErrEvent; FOnSuccess: TNotifyEvent; { +> Изменения, внесённые Eugene Mayevski [mailto:Mayevski@eldos.org]} procedure SetToAddr(newValue : TStrings); procedure SetCCAddr(newValue : TStrings); procedure SetBCCAddr(newValue : TStrings); procedure SetAttachedFileName(newValue : TStrings); { + Изменения, внесённые Eugene Mayevski [mailto:Mayevski@eldos.org]} procedure TMapiControl.SetToAddr(newValue : TStrings); begin FToAdr.Assign(newValue); end;
procedure TMapiControl.SetCCAddr(newValue : TStrings); begin FCCAdr.Assign(newValue); end;
procedure TMapiControl.SetBCCAddr(newValue : TStrings); begin FBCCAdr.Assign(newValue); end;
procedure TMapiControl.SetAttachedFileName(newValue : TStrings); begin FAttachedFileName.Assign(newValue); end; { + then begin for i := 1 to FTOAdr.Count do begin PRecip^.ulReserved := 0; PRecip^.ulRecipClass := MAPI_TO; { lpszName should carry the Name like in the contacts or the adress book, I will take the email adress to keep it short: } PRecip^.lpszName := PChar(FTOAdr.Strings[i - 1]); { Если Вы используете этот компонент совместно с Outlook97 или 2000 (не Express версии) , то Вам прийдётся добавить 'SMTP:' в начало каждого (email-) адреса. } PRecip^.lpszAddress := PChar('SMTP:' + FTOAdr.Strings[i - 1]); PRecip^.ulEIDSize := 0; PRecip^.lpEntryID := nil; Inc(PRecip); end;
{ То же самое проделываем с получателями копии письма: (CC, MAPI_CC) } for i := 1 to FCCAdr.Count do begin PRecip^.ulReserved := 0; PRecip^.ulRecipClass := MAPI_CC; PRecip^.lpszName := PChar(FCCAdr.Strings[i - 1]); PRecip^.lpszAddress := PChar('SMTP:' + FCCAdr.Strings[i - 1]); ... |
|