谁知道如何用winsock发有附件的邮件(200分)

  • 主题发起人 主题发起人 SEFox
  • 开始时间 开始时间
S

SEFox

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序用到winsock来发邮件,其它过程已经通过,可就是不知道怎么处理邮件的附件。
请各位高手指点。

你可以发邮件约我,sefox@sohu.com
或通过QQ:199577850与我联系

谢谢
 
用记事本自已打开带有附件的邮件的文件,你就明白怎么发的了
 
分析附件头,然后解码出来
 
Connect(Sock,SockAddrIn,SizeOf(SockAddrIn));
IF NOT MyRecv('220') THEN Break;
MySend('HELO '+LocalHost+#13#10);
IF NOT MyRecv('250') THEN Break;
MySend('MAIL FROM: <'+From+'>'#13#10);
IF NOT MyRecv('250') THEN Break;
MySend('RCPT TO: <'+Recip+'>'#13#10);
IF NOT MyRecv('250') THEN Break;
MySend('DATA'#13#10);
IF NOT MyRecv('354') THEN Break;
MySend('From: '+From+#13#10+
'To: '+Recip+#13#10+
'Subject: '+Subject+#13#10+
'MIME-Version: 1.0'#13#10+
'Content-Type: multipart/mixed; boundary="bla"'#13#10#13#10+
'--bla'#13#10+
'Content-Type: text/plain; charset:us-ascii'#13#10#13#10+
Body+#13#10#13#10+
'--bla'+#13#10+
'Content-Type: application/x-shockwave-flash;'#13#10+
' name="'+ExtractFileName(Attachment)+'"'#13#10+
'Content-Transfer-Encoding: base64'#13#10#13#10);
AssignFile(F,Attachment);
FileMode:=0;
Reset(F,1);
IF IOResult=0 THEN BEGIN
SetLength(FileBuf,FileSize(F));
BlockRead(F,FileBuf[1],FileSize(F));
Base64Encode(FileBuf,P);
MySend(P);
CloseFile(F);
END;
{$I+}
MySend(#13#10'--bla--'#13#10'.'#13#10);
IF NOT MyRecv('250') THEN Break;
MySend('QUIT'#13#10);
 
非常感谢大家的帮助,
不过上述代码好象不全,如有完整的代码就更好了。

仍要谢谢大家,因为这对我太重要了!
 
为表示感谢,请大家笑纳
 
后退
顶部