首页编程delphi 发邮件,delphi 邮件发送程序

delphi 发邮件,delphi 邮件发送程序

编程之家2023-11-02111次浏览

你是否对于delphi 发邮件和delphi 邮件发送程序感到困惑?别担心,今天小编将为您揭开这个谜团,让我们一同探索吧!

delphi 发邮件,delphi 邮件发送程序

怎样用delphi实现给指定邮箱发信息

你可以使用控件NMSMTP来发送电子邮件,以下是示例代码:

procedure TfrmSendMail.btnSendClick(Sender:Tobject);

begin

if edtAdress.text=’’ then

exit;

if edtport.text=’’ then

delphi 发邮件,delphi 邮件发送程序

exit;

if edtSendusertext=’’ then

exit;

if edtReceiver.text=’’ then

exit;

NMSMTP1.host:=edtAdress.text;

delphi 发邮件,delphi 邮件发送程序

NMSMTP1.port:=strtoint(edPort.text);

NMSMTP1.UserId:=edtSenduser.text;

NMSMTP1.conncet;

end;

procedure TfrmSendMail. NMSMTP1 ConnectionFailed(Sender:Tobject);

begin

showmessage(‘连接失败’);

end;

procedure TfrmSendMail. NMSMTP1 Connection(Sender:Tobject);

begin

sendmessage(Handle,WM_LOGIN,0,0);//自定义消息息传送。产生WM_LOGIN事件

end;

procedure TfrmSendMail. WMLOGIN(var MSG:TWM);//处理自定义消息

begin

//这里发送邮件。

NMSmTP1.postmessage.fromadress:=edtuserMail.text;

NMSmTP1.postmessage.fromname:=edtsenderuser.text;

NMSmTP1.postmessage.subject:=edtsubject.text;

NMSmTP1.postmessage.toadress.add(edtreceiver.text);

NMSmTP1.postmessage.attachments.addstrings(listbox1.items);

NMSmTP1.postmessage.body.assign(memo1.lines);

NMSMTP1.SENDMAIL;

NMSMTP1.DISCONNCET;

end;

以下是有关的NMSMTP资料:

属性

1、 ClearParams属性

为真时,邮件发送完毕会把PostMessage属性的值清空

2、 EncodeType

指定邮件编码方式。uuMIME—MIME编码;unCode---UUEncoding编码

3、 FinalHeader

指定最后的消息头标。

4、Host

SMTP服务器的主机名或IP地址。

5、LocalIP

返回客户机的IP地址,若有多个只返回一个。

6、Port

指定服务器的端口

7、PostMessage

是一个类,存储要发送的邮件信息。具体如下:

l FromName:发件人名称

l FromAdress:发件人email地址。

l ReplayToAdress:回复地址

l Orgranization:发件人所在地址。

l LocalProgram:发件人所用的客户程序

l ToAdress:是Tstringlist对象,收件人的接收地址。

l ToCC: Tstringlist对象,抄送的email地址。

l ToBCC: Tstringlist对象,密送的email地址。

l Attachments: Tstringlist对象,指定的附件。

l Body: Tstringlist对象,邮件正文。

l Subject:邮件主题。

l Date:邮件发送日期,为空指当前日期。

9、 ReplayNumber

只读属性,返回smtp服务器响应应答信息。

10、status

当前状态信息。

11、Timeout

毫秒级别的单位,如果规定时间Socket没有响应,触发异常。

12、TransactionReply

返回上一次命令的执行结果。

13、UserID

指定的用户名。

Delphi发送邮件的问题

你的程序有很多问题.我单看了你调用SendMail这个过程就有问题.

你的SendMail过程在定义是没有定义参数:

procedure SendEmail(Sender: TObject);,

可是在下面却又需要传入参数:

procedure TForm1.SendEmail(Recipient,Address:string);.

我估计你这个SendMail的过程是直接Copy人家的.这样肯定会出问题的.

我根据你的意思写了一个差不多的程序.该程序能够读取到程序目录下一个'rf.txt'文件,并将该文件的内容作为将要发送的邮件内容.

需要在窗体中放置一个TIDMessage控件,一个TIdSMTP控件

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, IdMessage, IdBaseComponent, IdComponent,

IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP;

type

TForm1= class(TForm)

SMTP: TIdSMTP;

IdMsgSend: TIdMessage;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure sendmail(sbody:TStrings);

private

{ Private declarations}

public

{ Public declarations}

end;

var

Form1: TForm1;

implementation

{$R*.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

Email: Textfile;

Bodytxt: tstrings;

s:string;

begin

Bodytxt:= TStringList.Create;

try

AssignFile(Email,extractfilepath(application.ExeName)+'rf.txt');

reset(Email);

while not EOF(Email) do

begin

readln(Email, s);

Bodytxt.Add(s);

end;

SendMail(Bodytxt);//调用SendMail,传入邮件内容BodyTxt

finally

closefile(email);

end;

ShowMessage('SendMail OK!');

end;

procedure TForm1.sendmail(sBody: TStrings);

begin

with IdMsgSend do

begin

Body:= sBody;//邮件内容

From.Text:='xxxx';//发件人���

Recipients.EMailAddresses:='xxxx';{ To: header}//收件人�

Subject:='yyyy';//邮件主旨

tidattachment.Create(IdMsgSend.MessageParts,'D:\Excel\Test.xls');//发送附件,可发送多个

SMTP.Host:='smtp.michael.com';//主机名称��

SMTP.Port:= 25;// PORT

SMTP.Connect;

try

try

SMTP.Send(IdMsgSend);

except

end;

finally

SMTP.Disconnect;

end;

end;

end;

end.

还有问题的话,可以发消息给我.

delphi 邮件发送程序

try

// IdSMTP1.AuthenticationType:=atLogin;//设置登陆类型 delphi2006不需要用

IdSMTP1.Username:='';//设置登陆帐号

IdSMTP1.Password:='';//设置登陆密码

IdSMTP1.Host:='';//设置SMTP地址

filename:='C:\文件.txt';//需要添加的附件文件

TIdAttachmentfile.Create(IdMessage1.MessageParts,filename);//添加附件

// IdSMTP1.Port:=8080;//设置端口必须转化为整型 delphi2006不需要用

if not idsmtp1.Connected then

IdSMTP1.Connect;//开始连接服务器

except

Showmessage('连接失败,请重试!');

Exit;//连接失败的话退出该执行过程

end;

IdMessage1.Body.Clear;//先清空上次发送的内容

IdMessage1.Subject:='测试';//设置邮件发送的标题

IdMessage1.Body.add('第一个自动发送邮件测试');//设置邮件发送的主体

IdMessage1.From.Address:='';//设置邮件的发件人也就是说该邮件来自什么地方

//IdMessage1.Recipients.EMailAddresses:='';//收件人的地址

IdMessage1.CCList.EMailAddresses:='';//抄送

IdMessage1.BccList.EmailAddresses:='';//密送

IdMessage1.Priority:=mpHighest;//邮件重要性

try

idSMTP1.Send(IdMessage1);

Showmessage('邮件发送成功!');

except

Showmessage('邮件发送失败!');

end;

希望对你有帮助

文章到此结束,如果本次分享的delphi 发邮件和delphi 邮件发送程序的问题解决了您的问题,那么我们由衷的感到高兴!

dialogresult.ok?C#有关dialogresult.ok 的问题郑州app开发公司哪家好?郑州APP开发公司哪家好