天天看点

delphi发送邮件程序

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms,

  Dialogs, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection,

  IdTCPClient, IdMessageClient, IdSMTP, StdCtrls;

type

  TForm1 = class(TForm)

    btn1: TButton;

    SMTP: TIdSMTP;

    MailMessage: TIdMessage;

    mmo1: TMemo;

    procedure btn1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);

Var

    i: integer;

    sEmail, sFullName: string;

begin

           sEmail :='[email protected]';//sEmail 用于临时保存收件者的邮箱地址如我本人的:[email protected]

            if Trim(sEmail) <> '' then

            begin

                with MailMessage do

                begin

                     Clear; // 清除前一次产生的 body & headerm, 以免第二次按时重复

                    Body.Assign(mmo1.Lines);    //邮件正文

                     From.Text :='[email protected]'; // 发送者的邮箱地址

                    Recipients.EMailAddresses := sEmail ; // 前面申请的收件者地址变量

                     Subject := '你好吗,亲爱的'; //写入邮件主题

                 //Priority := TIdMessagePriority(2);//设置发送的优先级 0-4, 0表示最高优先顺序

                  CCList.EMailAddresses :='[email protected]';//如果要抄送可以在这里进行操作

                 //  ReceiptRecipient.Text := From.Text; //若要寄件回函,那么就添加这行

               end;

                // 以下几行代码就是发送EMAIL的验证用户名及密码代码:

               SMTP.AuthenticationType := atLogin;{Simple Login}

                SMTP.Username :='weifengx10';//如发送者的Email地址为'[email protected]'那么在此时可以在用户名中填入'a123456'

               SMTP.Password := 'weifeng123';//'在所在的邮件服务器中注册的密码'

             //一般设定

               SMTP.Host := 'smtp.163.com';//一般发送邮件服务器的地址都以smtp.XXXX.com进行,如此时的126邮箱的为:smtp.126.com;

               SMTP.Port := 25;//发邮件者的发送邮件服务器端口号,一般为25要注意的是这里25是一个integer类型的.

           //发送

               try

                   SMTP.Connect;//与发件者服务器建立连接

                   try

                       SMTP.Send(MailMessage);//发送EMAIL内容至收件者.

                      ShowMessage('Send email successful.');

                    finally

                       SMTP.Disconnect;//此时不管发送是否成功与否都将Free掉所占的资源

                   end;

                except

                    on e:exception do

                    begin

                       ShowMessage('Send email unsuccessful.' + e.Message);//当连接错误时显示具体错误信息.

                   end;

                end;

            end;

end;

end.