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;

转载于:https://www.cnblogs.com/hnxxcxg/archive/2008/11/17/2940968.html

用Indy创建收发电子邮件的例子相关推荐

  1. 《游戏设计师修炼之道:数据驱动的游戏设计》一2.3 创建漏洞:一个例子

    2.3 创建漏洞:一个例子 现在,让我们使用上文提到的所有项目设计一个场景,通过实际演练来了解善意程序造成的恶劣后果.本章开始提到的电子邮件程序就是个好例子.稍后,我们将按照SDLC的所有步骤,来看看 ...

  2. 自学Python 64 使用Python语言收发电子邮件

    Python 使用Python语言收发电子邮件 文章目录 Python 使用Python语言收发电子邮件 一.开发POP3邮件程序 1.类 2.方法 二.开发SMTP邮件程序   自从互联网诞生那一刻 ...

  3. 第四章 收发电子邮件

    文章目录 第四章 收发电子邮件 支持电子邮件协议 InterSystems IRIS如何表示`MIME`电子邮件 创建由单个部分组成的电子邮件 创建多部分电子邮件 指定电子邮件标题 指定基本电子邮件标 ...

  4. 收发电子邮件属于计算机在方面的应用,计算机应用基础复习题(供参考).doc

    计算机应用基础复习题(供参考) 计算机应用基础 1.计算机能够自动工作,主要是因为采用了(? ? ).A.二进制数制?? B.高速电子元件?? C.存储程序控制?? D.程序设计语言参考答案:C2.从 ...

  5. 妙用Telnet快速收发电子邮件(转载)

    妙用Telnet快速收发电子邮件 妙用Telnet快速收发电子邮件 方法一:打开"开始"菜单中的"运行"对话框,输入命令telnet 及远程服务器端口号, 如: ...

  6. 计算机一级ie浏览器和电子邮件,2016年职称计算机考试Internet基础知识:利用IE收发电子邮件...

    利用IE收发电子邮件 利用IE浏览器直接登录邮箱进行收发邮件是最简单的收发邮件方式. 首先进入邮箱登录界面,输入已经注册好的用户名和密码进行登录.单击收件箱可以查看收到的邮件;单击"撰写邮件 ...

  7. 配置Exchange Server 2010多种邮件客户端收发电子邮件

    平时在工作中大家都知道除了常用OWA和Outlook来收发邮件之外,还会使用到Foxmail.Outlook Express和Windows Live Mail等等邮件客户端软件来收发电子邮件.下面介 ...

  8. 创建收发文件的服务器端 客户端,TCP/IP网络编程 Chap.5 基于TCP的服务器端/客户端(2)...

    已知字符串长度情况下完善回声客户端 # gcc echo_client2.c -o eclient2 # ./eclient2 127.0.0.1 9190 Connected Input messa ...

  9. icloud邮箱添加发件服务器地址,如何使用Mac创建iCloud电子邮件地址 | MOS86

    当苹果允许您使用任何电子邮件地址创建一个苹果帐户,它还提供自己的电子邮件服务在iCloud标签下.有了这个服务,你可以有一个电子邮件地址以COM 除了您创建的iCloud电子邮件之外,您还可以拥有自己 ...

最新文章

  1. 企业不要求工程师资格认证_谁说工程师不能成为企业家?
  2. RabbitMQ死信队列,延时队列
  3. 使用Oracle数据泵迁移数据库
  4. 强化学习笔记:Policy-based Approach
  5. 云原生时代, Kubernetes 多集群架构初探
  6. python中F/f表达式优于format()表达式
  7. 在网页中插入百度地图(实例)
  8. USB-WiFi在x210板子上的移植
  9. postgresql 高可用 etcd + patroni 之六 callback bind vip
  10. 作者:胡良霖(1973-),男,中国科学院计算机网络信息中心高级工程师
  11. 如果 GitHub 被中国互联网巨头收购会怎样?
  12. mysql数据库调优知识复习
  13. layui开关按钮,checkbox复选框开关按钮效果美化
  14. 1036: [ZJOI2008]树的统计Count(树链剖分)
  15. 微弱信号检测matlab,微弱信号检测
  16. mschart控件_使用MSChart控件绘制图表。
  17. 华为云从入门到实战 | 云速建站服务与企业主机安全服务
  18. Python数据可视化之散点图和折线图
  19. macOS在IDEA上集成PLANTUML Graphviz绘制UML图并导出SVG
  20. C语言输出汉字版乘法口诀表,C语言实现打印乘法口诀表

热门文章

  1. PHP笔记-订货单例子
  2. Arduino笔记-9110风扇模块的使用
  3. Arduino笔记-温度传感器的使用
  4. Qt工作笔记-动态曲线图
  5. 如何移植mysql数据库_如何把本地MySql数据库移植到远程服务器上
  6. QByteArray
  7. python 判断数字连续_关于python:检测列表中的连续整数
  8. linux携带密码登录其他远程机
  9. SQL注入:5、SQL盲注
  10. Springboot之actuator配置不当漏洞RCE(jolokia)