邮件发送问题(邮件内容怎么老是有部分关于邮件体的信息,怎么去掉啊) ( 积分: 100 )

  • 主题发起人 主题发起人 hao1701
  • 开始时间 开始时间
H

hao1701

Unregistered / Unconfirmed
GUEST, unregistred user!
我发送的邮件内容只有:test
但是收到的邮件却有如下内容:
Received: from 163.com (unknown [202.128.44.212]) by bjmx10 (Coremail) with SMTP id DFGKDERShjkJHCzU.1 for ; Thu, 25 Aug 2005 23:47:01 +0800 (CST) X-Originating-IP: [202.128.44.212] Received: from zfdsff (unknown [221.34.190.1]) by smtp4 (Coremail) with SMTP id JDFGKDERShjkJHCzU.2 for ; Thu, 25 Aug 2005 23:47:03 +0800 (CST) X-Originating-IP: [221.34.190.1] From: =?GB2312?B?ztI=?= Subject: fsafdfas To: hao1701@Tom.com Content-Type: multipart/*; charset=&quot;GB2312_CHARSET&quot; Reply-To: hao1701@163.com Date: Thu, 25 Aug 2005 23:49:39 +0800 X-Priority: 3 X-Library: Indy 9.00.10 Message-Id: <430DE7F5.19F222.01502> test

怎么改啊??????请高手相助啊!先谢谢了!!
 
我发送的邮件内容只有:test
但是收到的邮件却有如下内容:
Received: from 163.com (unknown [202.128.44.212]) by bjmx10 (Coremail) with SMTP id DFGKDERShjkJHCzU.1 for ; Thu, 25 Aug 2005 23:47:01 +0800 (CST) X-Originating-IP: [202.128.44.212] Received: from zfdsff (unknown [221.34.190.1]) by smtp4 (Coremail) with SMTP id JDFGKDERShjkJHCzU.2 for ; Thu, 25 Aug 2005 23:47:03 +0800 (CST) X-Originating-IP: [221.34.190.1] From: =?GB2312?B?ztI=?= Subject: fsafdfas To: hao1701@Tom.com Content-Type: multipart/*; charset=&quot;GB2312_CHARSET&quot; Reply-To: hao1701@163.com Date: Thu, 25 Aug 2005 23:49:39 +0800 X-Priority: 3 X-Library: Indy 9.00.10 Message-Id: <430DE7F5.19F222.01502> test

怎么改啊??????请高手相助啊!先谢谢了!!
 
我到没碰到这个情况,是不是你的控件是后来装上去的?不是delphi自带的?
 
我用的是delphi 7中自带的IdSMTP和IdPOP3等控件. 怎么搞啊 ??高手来帮一下啊!!
 
就用IdSMTP和IdMsgSend就可以发送,我是用的这2个
 
这是我发送程序的源代码,大家看看有什么问题:
begin
if not IdSMTP1.Connected then
begin
if FormConfig.AuthType.Checked then
IdSMTP1.AuthenticationType := atLogin
else
IdSMTP1.AuthenticationType := atNone;
IdSMTP1.Host := FormConfig.EditSMTP.Text;
IdSMTP1.Port := StrToInt(FormConfig.EditSMTPPort.Text);
IdSMTP1.Username := FormConfig.EditUser.Text;
IdSMTP1.Password := FormConfig.MaskEditPw.Text;
IdSMTP1.Connect();
end;
//显示用户信息
StatusBar1.SimpleText := '和服务器已建立连接';
with IdMessage1 do
begin
From.Address := FormConfig.EditReplyTo.Text; //发件人地址
From.Name := FormConfig.EditName.Text;
Recipients.EMailAddresses := EditToAddress.Text; //收件人地址
CCList.EMailAddresses := EditCarbonCopy.Text;
ReplyTo.EMailAddresses := FormConfig.EditReplyTo.Text;
Subject := EditSubject.Text; //邮件主题
CharSet := 'GB2312_CHARSET';
ContentType := 'multipart/*';
//Body.Assign(MemoNewMail.Lines);
TIdText.Create(MessageParts,MemoNewMail.Lines); //邮件正文

end;
for i := 1 to ComboBoxAttach.Items.Count do
TIdAttachment.Create(IdMessage1.MessageParts, ComboBoxAttach.Items.Strings[i
- 1]);
//发送邮件
try
IdSMTP1.Send(IdMessage1);
finally
IdSMTP1.Disconnect;
end;
end;
 
上面的问题 知道了 是IdMessage1.ContentType的问题,但了解还不太清楚,他的方式到底有几种,各种的区别???高手的指点一下!
又遇到新问题了:
我在循环发送的时候,怎么只能发送两封,然后开始出现连接错误,我的方式是在循环时改变邮件接受地址就是---循环改变IdMessage1.Recipients.EMailAddresses的值
出问题的地方是:IdSMTP1.Send(IdMessage1);
怎么弄的啊???
 
只有当 IdSMTP1.AuthenticationType := atLogin的时候,才可以连接到SMTP服务器上去,邮件才能发送,应该是你的这个IdSMTP1.AuthenticationType := atNone;的问题。将后面的代码应该跟在IdSMTP1.AuthenticationType := atLogin后面,或者你不判断IdSMTP1.AuthenticationType,直接在控件上设置成atLogin也行啊。
 
应该不是IdSMTP1.AuthenticationType := atLogin的问题,我已经设置了。
开始可以发两封的,但是第三封就发不出去了,提示的错误好象是Connection Closed Gracefully.什么 原因啊??
 
rfc的官方文档

http://www.ietf.org/rfc/rfc3236.txt

http://www.utoronto.ca/ian/books/xhtml1/mime/mimetype.html

MIMETYPE的种类

text/html
Plain text: documents; program listings txt c c++ pl cc h text/plain
Richtext (obsolete - replaced by text/enriched) text/richtext
Structure enhanced text (etx?) text/x-setext
Enriched text markup (RFC 1896) text/enriched
Tab-separated values (tabular) (tsv?) text/tab-separated-values
SGML documents (RFC 1874) text/sgml
Speech synthesis data (MVP Solutions) talk text/x-speech
 
既然可以发头2封的话,那说明程序应该是没什么问题的,那样应该就是网络原因或者是那个网站的smtp服务器有点什么问题吧。有些网站,比如要www.aaa.com吧,连接的时候有些用smtp.aaa.com是会有问题,而需要用mail.aaa.com才行。
 
检查是否是邮件服务器问题,可以直接用OE或者Foxmail发送看看,
 
Connection Closed Gracefully说明是服务器段在未通知的情况下断开了和你的连接。可能的原因是,短时间内重复发送邮件被认为是“群发垃圾邮件行为”,于是服务器暂时拒绝了你的发送请求。

还有,你说的“我的方式是在循环时改变邮件接受地址就是---循环改变IdMessage1.Recipients.EMailAddresses的值”,这个行为可以100%肯定是群发垃圾邮件!呵呵,服务器可能有过滤程序,把你的请求过滤掉了!
 
恩,我觉得也应该是服务器那边的问题,我的那种发送方式比较的土的,呵呵
关于群发,有没有什么好的方式,除了在发送地址里多加地址和抄送,密送等.
谢谢chenybin提供的地址,关于邮件正文的格式也在研究中,好象发送文本的格式在带附件时正常,但是没有附件时,IdMessage1.ContentType为text/html邮件正文就有问题,郁闷着呢
 
你的程序的附件是和邮件的发送写在一块,是先选择了附件之后才开始准备发邮件;如果你没有选择附件,它当然回提示有错误了。
 
关于群发有没有更好的方式啊???????
 
谢谢诸位了!!
 
谢谢各位,我也很有收获
 
后退
顶部