您的位置:首页 > 编程语言 > Delphi

delphi发送邮件代码

2013-12-03 16:15 447 查看
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[i]);
end;
end;
end;
with loSMTP do
begin
Host :=poSMTPServer.SMTPHost;
Port := poSMTPServer.SMTPPort;
if poSMTPServer.SmtpAuthType=1 then
AuthenticationType:=atLogin
else
AuthenticationType:=atNone;
Username := poSMTPServer.Username;
Password := poSMTPServer.Password;
try
Connect;
Send(loIdMsgSend);
except
result:=2;
exit;
end;
Result:=0;
finally
loIdMsgSend.Free;
loSMTP.Free;
end;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: