unit SendEmailUnit;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Psock, NMsmtp,inifiles, ComCtrls;type
TSendEmailForm = class(TForm)
Label1: TLabel;
receive: TEdit;
Label2: TLabel;
subject: TEdit;
EmailBody: TMemo;
Label3: TLabel;
accessary: TEdit;
BitBtn2: TBitBtn;
OpenDialog1: TOpenDialog;
SpeedButtonSend: TSpeedButton;
NMSMTP1: TNMSMTP;
StatusBar1: TStatusBar;
procedure BitBtn2Click(Sender: TObject);
procedure SpeedButtonSendClick(Sender: TObject);
procedure NMSMTP1Connect(Sender: TObject);
procedure NMSMTP1Success(Sender: TObject);
procedure NMSMTP1SendStart(Sender: TObject);
procedure NMSMTP1ConnectionFailed(Sender: TObject);
procedure NMSMTP1ConnectionRequired(var Handled: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;var
SendEmailForm: TSendEmailForm;
IniFile:TiniFile;
path:string;
implementation{$R *.DFM}procedure TSendEmailForm.BitBtn2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
accessary.Text :=Opendialog1.FileName;
end;procedure TSendEmailForm.SpeedButtonSendClick(Sender: TObject);
var
SendMan,path,EmailAccount,EmailServer,EmailPort:string;
begin
path :=ExTractFilePath(Application.ExeName) ;
IniFile :=TIniFile.Create(path+'SystemSet.ini');
SendMan :=INiFile.ReadString('Email','默认发送者','');
EmailAccount:=IniFile.ReadString('Email','邮箱帐号','');
EmailServer :=IniFile.ReadString('Email','邮件服务器','');
EmailPort :=IniFile.ReadString('Email','服务器端口号','');
try
with NMSmtp1 do begin
Host :=EmailServer;
Port :=strToInt(EmailPort);
UserID:=EmailAccount;
Connect;
if Connected then begin
PostMessage.FromName :=EmailAccount;
PostMessage.FromAddress:=SendMan;
postMessage.Subject:=subject.Text;
PostMessage.ToAddress.Add(receive.text);
PostMessage.Attachments.text:=Accessary.Text;
PostMessage.Body.Assign(EmailBody.lines);
SendMail;
end ;
end;
finally
Inifile.Free;
end;
end;procedure TSendEmailForm.NMSMTP1Connect(sender: TObject);
begin
statusbar1.Panels[0].Text:='正在连接到服务器...';
subject.Color :=clInactiveBorder;
Accessary.Color :=clInactiveBorder;
EmailBody.Color :=clInactiveBorder;
end;procedure TSendEmailForm.NMSMTP1Success(Sender: TObject);
begin
statusbar1.Panels[0].Text:='恭喜您,邮件已经成功发送!';
showmessage('邮件已经成功发送!');
subject.Color :=clWindow;
Accessary.Color :=clWindow;
EmailBody.Color :=clWindow;
subject.Clear;
Accessary.Clear;
EmailBody.Clear;
StatusBar1.Panels.Clear;
SendEmailForm.Close;
end;procedure TSendEmailForm.NMSMTP1SendStart(Sender: TObject);
begin
statusbar1.Panels[0].Text:='正在发送...';
end;procedure TSendEmailForm.NMSMTP1ConnectionFailed(Sender: TObject);
begin
ShowMessage('对不起,连接服务器失败!');
end;procedure TSendEmailForm.NMSMTP1ConnectionRequired(var Handled: Boolean);
begin
If MessageDlg('Connection Required. Connect?', mtConfirmation, mbOkCancel, 0) = mrOk then
Begin
Handled := TRUE;
NMSMTP1.Connect;
End;
end;procedure TSendEmailForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if NMSmtp1.Connected then begin
NMSmtp1.Disconnect;
NMSmtp1.Abort;
end;
end;end.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Psock, NMsmtp,inifiles, ComCtrls;type
TSendEmailForm = class(TForm)
Label1: TLabel;
receive: TEdit;
Label2: TLabel;
subject: TEdit;
EmailBody: TMemo;
Label3: TLabel;
accessary: TEdit;
BitBtn2: TBitBtn;
OpenDialog1: TOpenDialog;
SpeedButtonSend: TSpeedButton;
NMSMTP1: TNMSMTP;
StatusBar1: TStatusBar;
procedure BitBtn2Click(Sender: TObject);
procedure SpeedButtonSendClick(Sender: TObject);
procedure NMSMTP1Connect(Sender: TObject);
procedure NMSMTP1Success(Sender: TObject);
procedure NMSMTP1SendStart(Sender: TObject);
procedure NMSMTP1ConnectionFailed(Sender: TObject);
procedure NMSMTP1ConnectionRequired(var Handled: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;var
SendEmailForm: TSendEmailForm;
IniFile:TiniFile;
path:string;
implementation{$R *.DFM}procedure TSendEmailForm.BitBtn2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
accessary.Text :=Opendialog1.FileName;
end;procedure TSendEmailForm.SpeedButtonSendClick(Sender: TObject);
var
SendMan,path,EmailAccount,EmailServer,EmailPort:string;
begin
path :=ExTractFilePath(Application.ExeName) ;
IniFile :=TIniFile.Create(path+'SystemSet.ini');
SendMan :=INiFile.ReadString('Email','默认发送者','');
EmailAccount:=IniFile.ReadString('Email','邮箱帐号','');
EmailServer :=IniFile.ReadString('Email','邮件服务器','');
EmailPort :=IniFile.ReadString('Email','服务器端口号','');
try
with NMSmtp1 do begin
Host :=EmailServer;
Port :=strToInt(EmailPort);
UserID:=EmailAccount;
Connect;
if Connected then begin
PostMessage.FromName :=EmailAccount;
PostMessage.FromAddress:=SendMan;
postMessage.Subject:=subject.Text;
PostMessage.ToAddress.Add(receive.text);
PostMessage.Attachments.text:=Accessary.Text;
PostMessage.Body.Assign(EmailBody.lines);
SendMail;
end ;
end;
finally
Inifile.Free;
end;
end;procedure TSendEmailForm.NMSMTP1Connect(sender: TObject);
begin
statusbar1.Panels[0].Text:='正在连接到服务器...';
subject.Color :=clInactiveBorder;
Accessary.Color :=clInactiveBorder;
EmailBody.Color :=clInactiveBorder;
end;procedure TSendEmailForm.NMSMTP1Success(Sender: TObject);
begin
statusbar1.Panels[0].Text:='恭喜您,邮件已经成功发送!';
showmessage('邮件已经成功发送!');
subject.Color :=clWindow;
Accessary.Color :=clWindow;
EmailBody.Color :=clWindow;
subject.Clear;
Accessary.Clear;
EmailBody.Clear;
StatusBar1.Panels.Clear;
SendEmailForm.Close;
end;procedure TSendEmailForm.NMSMTP1SendStart(Sender: TObject);
begin
statusbar1.Panels[0].Text:='正在发送...';
end;procedure TSendEmailForm.NMSMTP1ConnectionFailed(Sender: TObject);
begin
ShowMessage('对不起,连接服务器失败!');
end;procedure TSendEmailForm.NMSMTP1ConnectionRequired(var Handled: Boolean);
begin
If MessageDlg('Connection Required. Connect?', mtConfirmation, mbOkCancel, 0) = mrOk then
Begin
Handled := TRUE;
NMSMTP1.Connect;
End;
end;procedure TSendEmailForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if NMSmtp1.Connected then begin
NMSmtp1.Disconnect;
NMSmtp1.Abort;
end;
end;end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货