J
jozosoft
Unregistered / Unconfirmed
GUEST, unregistred user!
var myIdAttachment:TIdAttachmentFile; begin ///来自: IdMessage1.Headers.Clear; IdMessage1.From.Name:= '=?gbk?B?' + Base64Encode( VMail_RealName ) + '?='; IdMessage1.From.Address:=VMail_Address; //'linghang2000999@163.com'; //主题: mySubject:= edtMailSubject.Text; if VMail_AddDateToSubject=1 then mySubject:= mySubject + '(' + dateTimetoStr(now) + ')'; mySubject := '=?gb2312?B?' + mySubject + '?='; IdMessage1.Subject := mySubject ; //收件人邮箱地址:? IdMessage1.Recipients.EMailAddresses:= AddRess ; IdMessage1.ContentType:='multipart/mixed; charset=gbk'; IdMessage1.Encoding:= meMIME; IdMessage1.Body.Clear; IdHtml:=TIdText.Create( IdMessage1.MessageParts ); with IdHtml do //正文文本/Html begin ContentType:='text/html;charset=gbk'; ContentTransfer:='base64'; //7bit Body.Clear; body.add( MailContent ); end; for I := 0 to lstAttach.Items.Count - 1 do begin sOneFile:= lstAttach.Items; if FileExists(sOneFile) then begin TIdAttachmentFile.Create( IdMessage1.MessageParts, sOneFile); //注意此行 idMessage1.MessageParts.Items[i ].FileName:= '=?gbk?B?' + Base64Encode( ExtractFileName( sOneFile) ) + '?='; end; end; end ------------------------------ 1、不要 “//注意此行” ,则: 所有文件名都不正确,以163.com接收到的邮件为例,文件名成了: 1 2 3 ...... 且都没有扩展名。 OutLook接收到的也一样的有问题。 2、加入 “//注意此行” ,则: 第一个附件文件名完全正确,其它的仍然不正确 请教各位出错原因及解决方法。 我试过用什么 IdMessage1.MessageParts.Clear,要么不成功,要么报错(也可能是我的语句有问题)