用Indy创建收发电子邮件的例子

1、创建工程,在窗体中加入IdSMTP1、IdMessage1和IdPOP31(Indy控件标签组)控件各一个。

       2、设置    IdSMTP1.Host := 'SMTP.163.com';(我用的是163检试,具体也可选择其它服务器)    IdSMTP1.Username :=

'caoyan528';(此处即表示邮箱的帐号名,例如邮箱为:aaaaaa@163.com,则Username即为aaaaaa)    IdSMTP1.Password := 'XXXXXXXX';(此处

即为邮箱的密码,如aaaaaa@163.com邮箱密码为123456,则Password即为123456)。

      3、设置IdMessage1.From.Address :=

'caoyan_528@163.com';(注意,此处的邮箱地址应在smtp.163.com中存在且就为以上设置的Username),IdMessage1.Recipients.EMailAddre

sses := ‘caoyan528@gmail.com’(此处表示收件人地址,只要是任何一个存在的邮箱地址即可)  IdMessage1.Subject:= '第一个邮件客户

端';(主题)具体源代码如下:

procedure TForm1.Button4Click(Sender: TObject);
var
  filename : String;

  tmpEMailItem : TIdEMailAddressItem;
  // tmpEmailAdd :  TIdEmailAddressList;
begin
  try
    IdSMTP1.Host := 'SMTP.163.com';

    IdSMTP1.AuthenticationType := atLogin; //保证登录模式为Login
    IdSMTP1.Username := 'caoyan_528';
    IdSMTP1.Password := 'XXXXXX';
    filename := 'E:/邮件发送程序/2003-12-22_253_04.jpg';   //需要添加的附件文件
    TIdAttachment.Create(IdMessage1.MessageParts,filename);  //添加附件

   IdMessage1.From.Address := 'caoyan_528@163.com';
    IdMessage1.Recipients.EMailAddresses:='caoyan528@gmail.com';

    tmpEMailItem := IdMessage1.Recipients.Add;  //添加一个地址列表

    tmpEMailItem.Text := 'caoyan528@gmail.com'; //写一个收件人

    idMessage1.BccList.Add.Text := 'caoyan_528@yahoo.com.cn';  //书写多个目标地址,实现群发

    idMessage1.BccList.Add.Text := 'caoyan_528@163.com';  //书写多个目标地址,实现群发


    IdMessage1.Subject:= '第一个邮件客户端';
    IdMessage1.Body.Text := Memo1.Text;   //此处为邮件正文

    IdMessage1.CharSet := 'gb2312';  //保证附件正文汉字的正常显示
    IdMessage1.Body.Assign(Memo1.Lines);  
    if IdSMTP1.AuthSchemesSupported.IndexOf('LOGIN')>-1 then
    begin
      IdSMTP1.AuthenticationType := atLogin; //连接前要保存为Login  上面己设,此处不必要
      IdSMTP1.Authenticate;
    end;

    IdSMTP1.Connect();  //连接SMTP服务器
    IdSMTP1.Authenticate;
    IdSMTP1.Send(IdMessage1);  //向服务器发送邮箱
  finally
    IdSMTP1.Disconnect;  //断开与服务器的连接
  end;
end;

自此,memo1中所写的内容被当作邮件发送了出去。而filename所指的附件也一同被发送到了服务器。

 

4、接收邮件

收以上的流程图不难看出,接收邮件完全是POP3服务器来完成的,客户只需连接到POP3服务器即可下载邮件。具体做法如下:

设置IdPOP31.Host := POP.163.com      IdPOP31.Username := 'caoyan_528';       IdPOP31.Password:= 'XXXXX';     

(此处的设置与SMTP的设置相同)    源代码如下:

procedure TForm1.Button5Click(Sender: TObject);
var
  mailcount : integer;
  i : integer;
  tmp : string;
begin
  IdPOP31.Connect();    //连接到POP3服务器
  mailcount := IdPOP31.CheckMessages;  //得到邮箱邮件的各数
  for i:=1 to mailcount do   //遍历每一封邮件
  begin
     IdMessage1.Clear;
     IdPOP31.retrieveHeader(i,IdMessage1);  //得到邮件的头信息
     tmp := IdMessage1.Subject;      //得到邮件的标题
     Memo1.Lines.Add(tmp);
     IdPOP31.Retrieve(i,IdMessage1);  //接收到邮件所有内容
     tmp := IdMessage1.Body.Text;   //邮件正文
     memo1.Lines.Add(tmp);
  end;
  IdPOP31.Disconnect;   //断开连接
end; 

MangaMeeya 是一款在日本很有名气的电子漫画阅览工具,具有速度流畅、操作灵活、书籍管理便捷等优点,并支持多种流行的图像插件,使其功能得到了非常自由的扩展。 图片读取和显示的速度极快是本软件最大的优点,而且作者一直在朝着这个方向努力。本软件复杂的运用了预读技术,您只要以正常速度阅读,图片再大也不会感到丝毫延迟。对于非常大的图片压缩包,无论再快的 CPU 也得数秒钟时间载入,这时您只要选择边载入边阅读,就可以做到一秒钟也不用浪费了。而且在读取完成之后,短时间内再次读取本压缩包将不再花任何时间。在预读功能之外,本软件的读取速度也异常优秀。如果图片大小正常,像实体书那样只用几秒钟时间从头翻到尾的事也能轻松做到。 ·如何以最快的速度浏览:关闭“工具”下拉菜单内的“启用翻页效果”、“启用Avisynth滤镜”,打开“预读文件”、“预读所有文件”。 ·如何实现边载入边阅读:在读取很大的压缩包时,“正在列出文件”对话框会自动出现,点击该对话框内的“在后台列出(按储存顺序)”即可。 本软件可以使用纯鼠标、纯键盘、纯手柄操作,当然也可以混合操作。所有功能的按键都可以自定义,所以绝对不会碰到操作不顺手的情况。和键盘一样,鼠标和手柄也有多键组合功能,不用担心按钮不够用。鼠标中还有一个非常有用的功能——鼠标手势(见本段尾的介绍)。鼠标手势的好处是在程序的操作上完全解放了眼睛,以前必须用眼睛确定菜单项的位置、窗口内按钮的位置、键盘按键的位置,现在则再也不用了,只要像写字一样划上几笔,就可以完成大量复杂的操作,这期间眼睛完全不用离开阅读的内容。 ·如何自定义操作设置:所有的操作设置都在“工具”下拉菜单内的“操作设置”子菜单内。 ·手柄如何进行组合按钮设置:每个按钮对应的功能在手柄对话框内设置,默认按钮5为“自定义控制键”,即组合键。“自定义控制键”与其他按钮组合后的功能也在同一窗口内设置。 ·如何使用鼠标手势:默认设置是以右键拖拽激发鼠标手势功能,只要在主窗口内按住右键拖拽出大致的走向,就会激发该走向对应的功能。比如默认向上拖拽是切换全屏幕,按住右键向上拖拽然后放开,程序就由窗口切换为全屏了,再次向上拖拽的话,就恢复到窗口状态。在“鼠标设置-手势设置”窗口内可以自定义拖拽走向对应的命令,在左边的方框中可以进行可视模拟操作。 不管对于电子书还是实体书来说书签(也就是书籍的管理)都非常重要,本软件设立了一个专门的主菜单项用作书籍的管理,可见其重视程度。在单个书籍(文件夹或压缩包)内部的管理上,程序设有中断点一个(关闭书籍时程序自动设置),记号一个(手动设置用),书目无数个(手动设置用)。程序可以在开启某个书籍时自动转到中断点或记号处,以便继续上次阅读。书目上可以写上简短文字,为书籍分出章节,当然作为普通的书签用也行。在书籍与书籍之间的管理上,程序设有四个列表:播放列表(当前阅读的书籍)、历史(之前阅读过的书籍)、收藏夹(文字式的仓库)、书架(带图片的仓库)。您还可以把任意列表保存为其他文件,等需要时再载入,这样就不用担心列表不够用了。 ·怎样设定打开书籍时转到上次关闭处:“工具-环境设置-一般设置1”内,选中“从中断处开启”。 ·怎样编辑书目:打开书目列表的快捷键默认为“鼠标手势-左”。编辑书目的操作和在 Windows 下修改文件名一样。 ·书架的使用:在列表内的该书籍项目上点击右键,选择“加入封底”。调好“加入位置”(纵坐标)和“加入宽度”后确定,该图块就连同文件信息一起被加入书架中。要显示图片式的书架请选择“查看-显示书架”。“加入封面”后不会显示在书架内,但可以在封面缩略图中看到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值