procedure TForm1.Button1Click(Sender: TObject);
begin
try
IdSMTP1.AuthenticationType:=atLogin; //设置登陆类型
IdSMTP1.Username:=Edit1.Text; //设置登陆帐号
IdSMTP1.Password:=Edit2.Text; //设置登陆密码
IdSMTP1.Host:=Edit3.Text; //设置SMTP地址
IdSMTP1.Port:=strtoint(Edit4.Text); //设置端口 必须转化为整型
IdSMTP1.Connect; //开始连接服务器
except
Showmessage('连接失败,请重试!');
Exit; //连接失败 的话 退出该执行过程
end;
IdMessage1.Body.Clear; //先清空上次发送的内容
IdMessage1.Subject:=Edit5.Text; //设置邮件发送的标题
IdMessage1.Body.Assign(Memo1.Lines); //设置邮件发送的主体
IdMessage1.From.Address:=Edit6.Text; //设置邮件的发件人 也就是说该邮件来自什么地方
IdMessage1.Recipients.EMailAddresses:=Edit7.Text; //收件人的地址
try
idSMTP1.Send(IdMessage1);
Showmessage('邮件发送成功!');
except
Showmessage('邮件发送失败!');
end;
end;
或者:
使用以下发邮件的函数
type
TLoginEmailServer=Record
SMTPHost:string;
SMTPPort:integer;
Username:string;
Password:string;
SmtpAuthType:integer;
end;
function SendEmail(poSMTPServer:TLoginEmailServer;poBody:Tstrings;psFromEmial,
psToEmail,psSubject:string;psContentType:string;
CCToEmail:string;poAttachmentPath:TStrings):integer;
var
loIdMsgSend: TIdMessage;
loSMTP: TIdSMTP;
i:integer;
begin
Result:=3;
loIdMsgSend:=nil;
loSMTP:=nil;
try
loIdMsgSend:=TIdMessage.Create(nil);
loSMTP:=TIdSMTP.Create(nil);
with loIdMsgSend do
begin
ContentType:=psContentType;
From.Text := psFromEmial;
ReplyTo.EMailAddresses := psFromEmial;
Recipients.EMailAddresses := psToEmail;
CCList.EMailAddresses:=CCToEmail;
Subject := psSubject;
Priority := mpHigh;
ReceiptRecipient.Text := '';
Body.Assign(poBody);
if Assigned(poAttachmentPath) then
begin
for i := 0 to poAttachmentPath.Count-1 do
begin
TIdAttachment.Creat(loIdMsgSend.MessageParts,poAttachmentPath.Strings);
end;
end;
end;
with loSMTP do
begin
Host :=poSMTPServer.SMTPHost;
Port := poSMTPServer.SMTPPort;
if poSMTPServer.SmtpAuthType=1 then
AuthenticationType:=atLog