注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

鑫淼梦园的博客

圆你的梦想 从这里开始

 
 
 

日志

 
 

Delphi发邮件的函数  

2014-03-31 18:56:27|  分类: delphi xe5 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes,
  Graphics, Controls, Forms, Dialogs, StdCtrls, IdComponent,
  IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP, IdBaseComponent,IdAttachmentFile,
  IdMessage;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
 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
            TIdAttachmentFile.Create(loIdMsgSend.MessageParts,poAttachmentPath.Strings[i]);
          end; 
        end; 
     end; 
     with loSMTP do                    
       begin 
       Host :=poSMTPServer.SMTPHost; 
       Port := poSMTPServer.SMTPPort; 
       if poSMTPServer.SmtpAuthType=1 then 
         AuthenticationType:=satDefault 
       else 
         AuthenticationType:=satNone; 
       Username := poSMTPServer.Username; 
       Password := poSMTPServer.Password; 
       try 
         Connect;    
         Send(loIdMsgSend);       
       except 
         result:=2; 
         exit; 
       end; 
       Result:=0;
       end;
   finally
     loIdMsgSend.Free;
     loSMTP.Free; 
   end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     SendEmail(.........);
end;

end.

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;

  评论这张
 
阅读(179)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017