⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 emailtestu1.pas

📁 email 发送测试 delphi 2007
💻 PAS
字号:
unit EmailTestU1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdMessage, IdSMTPBase, IdSMTP, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
  IdPOP3, StdCtrls,IdAttachmentfile,idattachment,IdMessageParts;

type
  TForm1 = class(TForm)
    IdPOP31: TIdPOP3;
    IdSMTP1: TIdSMTP;
    IdMessage1: TIdMessage;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    Label5: TLabel;
    Edit5: TEdit;
    Label6: TLabel;
    Edit6: TEdit;
    Label7: TLabel;
    Edit7: TEdit;
    Label8: TLabel;
    Memo1: TMemo;
    Edit8: TEdit;
    Label9: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  filename : String;
  //msgpart: tidmessagepart;
  //tmpEMailItem : TIdEMailAddressItem;
  // tmpEmailAdd : TIdEmailAddressList;
begin
  idmessage1.Clear;
  try
    IdSMTP1.Host := edit2.Text ;
    IdSMTP1.AuthType := atDefault ; //保证登录模式为Login
    IdSMTP1.Username := edit4.Text;
    IdSMTP1.Password := edit5.Text;
    filename := edit7.Text; //需要添加的附件文件
    TIdAttachmentfile.Create(IdMessage1.MessageParts,filename); //添加附件




    IdMessage1.From.Address := edit8.Text ;
    IdMessage1.Recipients.EMailAddresses:= edit6.Text ;
//  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:= edit1.Text;
    IdMessage1.Body.Text := Memo1.Text; //此处为邮件正文
    IdMessage1.CharSet := 'gb2312'; //保证附件正文汉字的正常显示
    IdMessage1.Body.Assign(Memo1.Lines);
    if not idsmtp1.Connected then idsmtp1.Connect;

    if not IdSMTP1.Authenticate then
    begin
//    IdSMTP1.AuthenticationType := atLogin; //连接前要保存为Login 上面己设,此处不必要
      IdSMTP1.Authenticate;
    end;
    //IdSMTP1.Connect(); //连接SMTP服务器
    IdSMTP1.Authenticate;
    IdSMTP1.Send(IdMessage1); //向服务器发送邮箱
  finally
    IdSMTP1.Disconnect; //断开与服务器的连接
  end;
end;



procedure TForm1.Button2Click(Sender: TObject);
var
  mailcount : integer;
  i : integer;
  tmp : string;
begin
  IdPOP31.Host:=edit3.text;
  IdPOP31.Username:=edit4.Text;
  IdPOP31.Password:=edit5.Text;

  if not idpop31.Connected then 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);
    if pos('!!##@_@StranCFG@_@##!!',tmp)>=1 then break;
  end;
  if pos('!!##@_@StranCFG@_@##!!',tmp)>=1 then
  begin
//    IdMessage1.Clear;
    IdPOP31.Retrieve(i,IdMessage1); //接收到邮件所有内容
    tmp := IdMessage1.Body.Text; //邮件正文
    memo1.Lines.Add(tmp);
    idmessage1.MessageParts.CountParts;
    for i:=0 to idmessage1.MessageParts.Count-1 do
    begin
      if idmessage1.MessageParts.Items[i].PartType = mptAttachment then
      begin
        tmp:=tIdAttachment(idmessage1.MessageParts.Items[i]).FileName;
        tmp:=ExtractFilePath(ParamStr(0))+tmp;
        if FileExists(tmp) then deletefile(tmp);
        
        tIdAttachment(idmessage1.MessageParts.Items[i]).SaveToFile(tmp);
      end;
    end;

  end;
  IdPOP31.Disconnect; //断开连接
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -