Delphi 发送带有附件的电子邮件时发生访问冲突
如果我发电子邮件,效果很好Delphi 发送带有附件的电子邮件时发生访问冲突,delphi,smtp,gmail,delphi-7,indy,Delphi,Smtp,Gmail,Delphi 7,Indy,如果我发电子邮件,效果很好 var IdEnviar: TIdMessage; 但如果我尝试添加附件,请添加以下3行: IdSSLIOHandlerSocketOpenSSL1.Host := 'smtp.gmail.com'; IdSSLIOHandlerSocketOpenSSL1.Port := 587; 我得到一个访问冲突错误 我正在使用最后的indy10文件您的代码包含严重错误: IdEnviar.MessageParts.Clear; IdAttachmentFile1.C
var
IdEnviar: TIdMessage;
但如果我尝试添加附件,请添加以下3行:
IdSSLIOHandlerSocketOpenSSL1.Host := 'smtp.gmail.com';
IdSSLIOHandlerSocketOpenSSL1.Port := 587;
我得到一个访问冲突错误
我正在使用最后的indy10文件您的代码包含严重错误:
IdEnviar.MessageParts.Clear;
IdAttachmentFile1.Create(IdEnviar.MessageParts, 'c:\file.png');
IdAttachmentFile1.ContentType := 'multipart/mixed';
您未能正确创建TIdAttachmentFile
,因此尝试在不存在的对象上设置属性,从而获取AV
正确的方法是将TIdAttachmentFile.Create
的结果分配给变量,然后设置该变量的ContentType
:
IdAttachmentFile1.ContentType := 'multipart/mixed';
你知道如何创建一个实例吗<代码>MyFoo:=TFoo.Create代码>我想我有所有对象的实例IdSMTP1:=tidstp.Create(nil);IdSSLIOHandlerSocketOpenSSL1:=TIdSSLIOHandlerSocketOpenSSL.Create(nil);IdEnviar:=TIdMessage.Create(nil);代码编译正确,如果我不使用附件,电子邮件发送很好,我的问题是attachmentAnd
IdAttachmentFile1.Create(IdEnviar.MessageParts,'c:\file.png')代码>?您的意思是将其添加到var中吗?我也这么做了:tidattachmentfile1:TIdAttachmentfile;我的意思是您应该使用TIdAttachmentFile创建一个实例。创建(…)
这就是您必须创建实例的方式
var
Attachment: TIdAttachmentFile;
Attachment := TIdAttachmentFile.Create(IdEnviar.MessageParts, 'c:\file.png');
Attachment.ContentType := 'multipart/mixed';