用indy发邮件,提示connection closed gracefully!(50分)

  • 主题发起人 主题发起人 net_morning
  • 开始时间 开始时间
N

net_morning

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位大侠有解决之道,请不吝出手,万分感谢!
 
indy有个demo包,我试过里面的mailclient例子,可以正常收发邮件; 至于connection closed gracefully,顾名思义是"优雅地关闭连接",一般可以忽略.
 
可以使用try catch
抛弃此错误
因为socket经常会报这样的问题出来
 
1.服务器需要你的认证,请输入用户名和密码。
2.邮件服务器认为你是垃圾邮件。
 
请问有没有不使用indy组件,直接用ESMTP发邮件的朋友?
 
有的,你直接用WinSock编写即可。注意用Base64编码。
给你一段示例:
//请求验证
sbuf := 'AUTH LOGIN' + CRLF;
WinSock.send(Sock, sbuf[1], Length(sbuf), 0);
recv(Sock, rbuf, SizeOf(rbuf), 0);

//发送用户名
sbuf := Base64EncodeStr(FUserName) + CRLF;
WinSock.send(Sock, sbuf[1], Length(sbuf), 0);
recv(Sock, rbuf, SizeOf(rbuf), 0);

//发送密码
sbuf := Base64EncodeStr(FPassword) + CRLF;
WinSock.send(Sock, sbuf[1], Length(sbuf), 0);
recv(Sock, rbuf, SizeOf(rbuf), 0);
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
875
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部