用Indy10使用GMail的邮件服务器发送邮件的问题,郁闷了3天了,哪位大侠能帮帮我啊,谢谢了!! ( 积分: 40 )

  • 主题发起人 主题发起人 LearningAug
  • 开始时间 开始时间
L

LearningAug

Unregistered / Unconfirmed
GUEST, unregistred user!
我的代码如下:

IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
IdSSLIOHandlerSocketOpenSSL.DefaultPort := 0;
IdSSLIOHandlerSocketOpenSSL.SSLOptions.Mode := sslmUnassigned;
IdSSLIOHandlerSocketOpenSSL.SSLOptions.VerifyDepth := 0;
IdSSLIOHandlerSocketOpenSSL.SSLOptions.VerifyMode := [];
IdSSLIOHandlerSocketOpenSSL.Host := IdSMTP1.Host;
IdSSLIOHandlerSocketOpenSSL.Port := IdSMTP1.Port;
IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvSSLv1;
IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL;
IdSMTP1.UseTLS := utUseImplicitTLS;

然后我把libeay32.dll和ssleay32.dll这两个DLL都放到了我的应用程序的根目录下,为什么当我把IdSMTP1.Host设置为:smtp.gmail.com的时候,然后再发送邮件,总是报错:'Must issue a STARTTLS command first'。

可是如果我把IdSMTP1.Host设置为163或者tom和sina的都没有任何问题,可以发送成功,请问各位大侠,对于GMail的邮件服务器,我应该怎么设置呢?先谢谢了哈!
 
gmail 的smtp服务器的端口是465
pop是995
不是用的标准端口, 在你的程序里加一个设置自定义端口的功能吧
 
TO smsman:
我测试的时候已经把端口改成465了的。应该不是这个问题哈
 
留下email,我给你发个demo!
 
哦,看错了楼主问题,我的Demo是pop3的。算了,不用发了。
 
是由于gmail的默认的是经过SSL加密过的,所以端口号不一样啊,接收与发送都不是默认的POP3与SMTP的端口号的,所以要注册应用indy10的时候查看是否支持SSL加密
 
问题我自己解决了,谢谢大家哈,散分了!
 
多人接受答案了。
 
后退
顶部