• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Delphi > Delphi7中群发Email邮件的方法

Delphi7中群发Email邮件的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了delphi7在线教程,delphi7中文版下载,delphi7,delphi7序列号,delphi7下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了Delphi7中群发Email邮件的方法。分享给大家供大家参考。具体分析如下:

这段时间需要对所有参加考试的考生将考生信息及考试信息通过电子邮件群发,经过多次调试,算是成功了,发来给大家参考一下:

总的思路是:

1、安装局域网版的邮件服务器,并通过设置DNS使得给服务器能给网外用户发送电邮,这方面的软件比较多,例如WinWebMail就不错,可以从官网下载;
 
2、需要使用到的控件:Indy10.0.15,可以通过百度搜索下载;
 
3、设置需要发送的电子邮箱服务器及账号信息
var
  selectStr:string;
  thisresult:integer;
begin
  thisresult := 0;
  //设置账户
      IdSMTP1.AuthType := atNone; //或者是atSASL;
      IdSMTP1.Host := hostString;
      IdSMTP1.Username := userNameString;
      IdSMTP1.Password := passWordString;
      try
        IdSMTP1.connect;
        thisresult := 1;
      
        if not IdSMTP1.Authenticate then
         begin
          showmessage('发送邮箱账号验证失败!请检查SMTP账户设置!');
          thisresult := 0;
         end
      except
        showmessage('SMTP服务器连接失败!请检查SMTP账户设置及网络是否正常!');
        thisresult := 0;
      end
    end;
  result := thisresult;
end;</div>
 
4、将Email发送一个信息作为独立函数,发送时需要进行延时控制
    formAddress:string;receiptRecipientAddress:string;sendtoAdd:string;emailSubject:string);
begin
  MsgKsbkxx.From.Name := emailusername;     //邮件发送人姓名
  MsgKsbkxx.From.Address := formAddress; //邮件发送人地址
  MsgKsbkxx.ReceiptRecipient.Address := receiptRecipientAddress;
     //回复地址,可以与邮件发送人地址不同
  MsgKsbkxx.Recipients.EMailAddresses := sendtoAdd; //发送地址?
  MsgKsbkxx.Sender.Address := formAddress; //sendtoAdd;  //邮件发送至......地址
  MsgKsbkxx.Subject := emailSubject;  //主题
  MsgKsbkxx.Body.Assign(emailMemo.Lines);  //邮件内容
  IdSMTP1.Send(MsgKsbkxx);  //发送邮件指令
end;</div>
 
5、简单判断电子邮件地址的合法性
procedure SeparateTerms2(s:string;Separator:string;var rs:TStringList);
var
  AStr: string;
  idx: Integer;
  ASubStr: string;
begin
  AStr := Trim(s);
  while Pos(Separator, AStr) > 0 do
  begin
    idx := Pos(Separator, AStr);
    ASubStr := Copy(AStr, 1, idx - 1);
    rs.Add(ASubStr);
    AStr := Copy(AStr, idx + 1, Length(AStr));
  end;
 if AStr+'a' <> 'a' then  rs.Add(AStr); //如果存在剩余的字符串,则将其存入字符串列表中
end;
 
//判断某个字符串是否符合电邮邮件地址标准
//正确:返回ok,错误返回error
function emailAddressYesOrNo (emailAddress:String):string;
var
  getStrings:TStringList;
  getYesOrNo:string;
begin
  getYesOrNo := 'error';
  getStrings := TStringList.Create;
  SeparateTerms2(emailAddress,'@',getStrings);
  if getStrings.Count=2 then
    begin
      getStrings.Clear;
      SeparateTerms2(emailAddress,'.',getStrings);
      if getStrings.Count>1 then  getYesOrNo := 'ok';
    end;
  getStrings.Free;
  result := getYesOrNo;
end;</div>
 
6、批量发送电子邮件
var
  AccordAmount,i,j,tag:integer;
  emailusername,formAddress,sendtoAdd,emailSubject,receiptRecipientAddress,selectStr:string;
begin
  //判断数据表里面是否有需要发送电子邮件的数据,如果有则发送
  if Bmb.RecordCount >0 then
    AccordAmount := Bmb.RecordCount
  else
    exit;
  //
  //获取账户信息,一般存放在数据表或INI文件中
  emailusername :=  userNameString; //发送邮件人
  formAddress := fromAddressString;   //发送邮件地址
  receiptRecipientAddress := receiptRecipientAddressString;  //回复邮件地址
  emailSubject := emailSubjectString; //邮件主题
 //
  tag := 1;  //标志位:发送出错则停止
  i:=1;  //发送邮件的总数
  j:=0;  //让进度条逐步递进的记录处理条数
  list1.Clear; //显示已经成功发送电子邮件的学员信息
  //判断是否能与设置的邮箱连接,如果返回值为1,则获取邮件内容及相关设置并发送
  if setEmailInfo = 1 then
    begin
      Pb.BlockSize := 1;
      Pb.Max := AccordAmount ;
      Formsjtj.Refresh;
      Bmb.First;
      try
       while (not tBmb.Eof) do
        begin
          //判断邮件地址是否为空且是否符合电邮规范,如都满足条件则给该地址发送电邮
          if Bmb.FieldByName('s_emailAddress').AsString+'a' <> 'a' then
            begin
              //获取发送邮件的内容
              emailMemo.Clear;
              ..........................
              //设置邮件信

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Delphi7中群发Email邮件的方法

相关文章

  • 2017-05-28Delphi中对时间操作方法汇总
  • 2017-05-28Delphi实现获取磁盘空间大小的方法
  • 2017-05-28delphi mysql adbquery数据提供程序或其他服务返回 E_FAIL 状态
  • 2017-05-28Delphi下OpenGL2d绘图之画点的方法
  • 2017-05-28delphi建立、读取、存贮INI文件的方法《三》
  • 2017-05-28Delphi实现限定软件使用时间的方法
  • 2017-05-28delphi设置开机自动启动函数具体实现
  • 2017-05-28截取指定符号之间的字符串(随机读取)delphi实例代码
  • 2017-05-28Delphi实现检测并枚举系统安装的打印机的方法
  • 2017-05-28Delphi实现毫秒级别的倒计时实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Delphi用TActionList实现下载文件的方法
    • Delphi下OpenGL2d绘图之画线的方法
    • delphi7连接mysql5的实现方法
    • Delphi XE5 为Android应用制作签名的方法(图文)
    • Delphi下OpenGL2d绘图之画四边形的方法
    • Delphi实现限定软件使用时间的方法
    • Delphi实现木马自我拷贝方法
    • Delphi使用OpenGL2d绘图之画图片Bmp的方法
    • 截取指定符号之间的字符串(随机读取)delphi实例代码
    • delphi制作wav文件的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有