分享

发送邮件代码(delphi)

 老魏的书架 2014-04-25
日期:2006年11月6日 作者:delphibbs 人气: 2713 查看:[大字体 中字体 小字体]

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;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多