📄 sendmail2.pas
字号:
unit SendMail2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, mapi;
type
TfrmSendMail2 = class(TForm)
GroupBox1: TGroupBox;
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label13: TLabel;
edSmtpSrv: TEdit;
edSmtpPort: TEdit;
edSmtpUser: TEdit;
edSmtpPWD: TEdit;
Panel1: TPanel;
Label7: TLabel;
edSendTo: TEdit;
Label11: TLabel;
edSubject: TEdit;
cmdSend: TButton;
Label6: TLabel;
edFrom: TEdit;
chkSmtpPwd: TCheckBox;
procedure cmdSendClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmSendMail2: TfrmSendMail2;
implementation
{$R *.dfm}
procedure TfrmSendMail2.cmdSendClick(Sender: TObject);
var hMapiSession :THandle;
rdOriginator :PMapiRecipDesc;
oMapiOri :MapiRecipDesc;
procedure InitMessage(var pmmMessage:TMapiMessage);
begin
rdOriginator :=@oMapiOri;
oMapiOri.ulReserved :=0;
oMapiOri.ulRecipClass :=MAPI_ORIG;
oMapiOri.lpszName :=nil;
oMapiOri.lpszAddress :='dgwingsky@163.com';
if (MAPIResolveName(hMapiSession, 0, 'dgwingsky@163.com',
MAPI_DIALOG, 0, rdOriginator) <>SUCCESS_SUCCESS) then
application.MessageBox('MAPI ResolveName Error!','');
pmmMessage.ulReserved := 0;
pmmMessage.lpszMessageType := nil;
pmmMessage.lpszDateReceived := '1991/03/23 12:00';
pmmMessage.flFlags := MAPI_UNREAD;
pmmMessage.lpOriginator := @rdOriginator;
pmmMessage.nRecipCount := 0;
pmmMessage.lpRecips := nil;
pmmMessage.nFileCount := 0;
pmmMessage.lpFiles := nil;
end;
var lpMessage: TMapiMessage;
pRecips :PMapiRecipDesc;
oMapiRec :MapiRecipDesc;
begin
//硈钡狝叭竟
if (MAPILogon(Self.Handle, nil, nil,
MAPI_LOGON_UI or MAPI_NEW_SESSION,
0, @hMapiSession) <> SUCCESS_SUCCESS) then
begin
Application.MessageBox('MAPI Logon Failed!','');
Exit;
end;
//祇癳秎ン
pRecips :=@oMapiRec;
oMapiRec.ulReserved :=0;
oMapiRec.lpszAddress := 'ztxincheng@163.com';
oMapiRec.ulRecipClass := MAPI_TO;
oMapiRec.lpszName :=nil;
MAPIResolveName (hMapiSession, 0, 'ztxincheng@163.com',
MAPI_DIALOG, 0, pRecips);
InitMessage(lpMessage);
lpMessage.lpszSubject := 'Test Subject';
lpMessage.lpszNoteText := 'Test NoteText';
lpMessage.nRecipCount := 1;
lpMessage.lpRecips :=@oMapiRec;
lpMessage.flFlags := MAPI_RECEIPT_REQUESTED;
case MAPISendMail(hMapiSession, 0, lpMessage, 0, 0) of
MAPI_E_AMBIGUOUS_RECIPIENT: Application.MessageBox('MAPISendMail AMBIGUOUS_RECIPIENT!','');
MAPI_E_ATTACHMENT_NOT_FOUND: Application.MessageBox('MAPISendMail ATTACHMENT_NOT_FOUND!','');
MAPI_E_ATTACHMENT_OPEN_FAILURE: Application.MessageBox('MAPISendMail ATTACHMENT_OPEN_FAILURE!','');
MAPI_E_BAD_RECIPTYPE: Application.MessageBox('MAPISendMail BAD_RECIPTYPE!','');
MAPI_E_FAILURE: Application.MessageBox('MAPISendMail FAILURE!','');
MAPI_E_INSUFFICIENT_MEMORY: Application.MessageBox('MAPISendMail INSUFFICIENT_MEMORY!','');
MAPI_E_LOGIN_FAILURE: Application.MessageBox('MAPISendMail LOGIN_FAILURE!','');
MAPI_E_TEXT_TOO_LARGE: Application.MessageBox('MAPISendMail TEXT_TOO_LARGE!','');
MAPI_E_TOO_MANY_FILES: Application.MessageBox('MAPISendMail TOO_MANY_FILES!','');
MAPI_E_TOO_MANY_RECIPIENTS: Application.MessageBox('MAPISendMail TOO_MANY_RECIPIENTS!','');
MAPI_E_UNKNOWN_RECIPIENT: Application.MessageBox('MAPISendMail UNKNOWN_RECIPIENT!','');
MAPI_E_USER_ABORT: Application.MessageBox('MAPISendMail USER_ABORT!','');
SUCCESS_SUCCESS: Application.MessageBox('MAPISendMail SUCCESS!','',MB_ICONQUESTION);
else Application.MessageBox('MAPISendMail other!','');
end;
//沧ゎ硈钡狝叭竟
MAPILogoff (hMapiSession, Self.Handle, 0, 0);
hMapiSession := 0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -