delphi发送邮件代码

转载 2013年12月03日 16:15:37
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; 


 

相关文章推荐

delphi群发送邮件源码

  • 2013年05月31日 14:26
  • 781KB
  • 下载

delphi7+indy9发送邮件源码(测试通过)

delphi7 indy9 通过  procedure TForm1.Button1Click(Sender: TObject);  var      filename: string;  b...

匿名发送邮件-delphi

  • 2008年06月16日 11:25
  • 188KB
  • 下载

怎样用delphi编写一个在线发送邮件的程序

怎样用delphi编写一个在线发送邮件的程序 uses windows,messages,winsock,sysutils;{$R *.RES}const CRLF=#13#10; exenam...
  • zzwu
  • zzwu
  • 2017年01月22日 12:21
  • 350

delphi2010发送邮件—中文显示为乱码解决

在delphi2010中拖idsmtp和idmessage这俩个控件,就可以发送邮件了。 在按钮btn1的click事件下写如下代码: 值得注意的是:1、你用哪个邮箱的服务器,在 IdSMTP1....

Delphi用Indy10实现smtp发送邮件支持附件

原先使用了第三方插件EASendMail SMTP Component来实现发送邮件,谁知道授权过期了,无奈只好求助于Indy,Google上翻阅了相关资料一番,发现现成的代码并不能满足我的需求,就在...

发送邮件—java代码简单实例

  • 2016年08月24日 15:44
  • 155KB
  • 下载

C#发送邮件和fax的代码

  • 2012年11月21日 12:03
  • 51KB
  • 下载

发送邮件的plsql代码

用户肯定有需求说要发送邮件,对于系统一些情况,系统可以Schedule发送给指定用户,发送邮件有3种方法: 1、when before run concurrent,我们可以选择用户,当请求跑完之后...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:delphi发送邮件代码
举报原因:
原因补充:

(最多只允许输入30个字)