DELPHI中怎样发邮件,有没有要求验证的问题(10分)

  • 主题发起人 主题发起人 erbbchen
  • 开始时间 开始时间
E

erbbchen

Unregistered / Unconfirmed
GUEST, unregistred user!
使用NMSMTP控件来发邮件,参照DElphi的demo
在host设置smtp为smtp.163.com
结果要求用户验证,但是在demo上验证输入用户名称也是验证不通过

真是奇怪?到底要怎样才能发邮件?
 
用indy 吧
d5上的NMSMTP控件 好像不行
d6的已經可以了
 
用indy 吧
indy是什么,另外所谓的验证应该是用户名称和密码一起验证
但是NMSMTP1.Verify('...');只有用户名称怎么验证密码
 
换用indy9吧,不错的,
例子里面有的,你看看怎么用,可以学会的
支持验证的
 
在例子中看到这个目录,能不能介绍一下整个目录是干什么的
这个INDY代表什么?发邮件的原理和NMSMTP一样吗
 
indy的SMTP支持身份验证,只要给ID和PASSWORD赋相对应的值就可以了!
 
例子我运行看过了mailDemo
我输入了account 和 password可以收信,但是发信仍然有要求验证提示错误!
我用的是smtp.163.com
 
呵呵,发163.com是不行的,163邮箱的问题,要修改一下原代码才可以
你可以先用etang的试一下,可以的
indy目录下的那些都是有关indy控件的使用
你先学着使用,
控件有两个方面要修改,
一个是Subject乱码的问题
二个是163不能发信的问题
修改过的单元,我可以发给你,
 
我的主页上我做了一个通过TNMSMTP发邮件的例子,可以进行服务器验证.
http://www.aidelphi.com
 
找个匿名的就行了,以前我是用的www.peoplemail.com.cn,
你现在看看还可以不可以申请
 
到这里看,有文章。http://www.tommstudio.com/newclub30/
 
我已经用了一下,恳请twos告知:
1,到底这两套email控件应该用哪一个比较好
2,请说明163存在的问题以及你所说的问题
如果要修改恳请发邮件到sunnyczh@163.com
 
TNMSMTP本身是不支持SMTP认证的,但是可以在OnConnect中用Transaction方法传送认证字符串,不过需要先进行Base64的编码:

procedure TForm1.NMSMTP1Connect(Sender: TObject);
begin
//////连接成功,下面用户认证过程
StatusBar1.SimpleText:=nmsmtp1.Status;
if nmsmtp1.ReplyNumber = 250 then
StatusBar1.SimpleText:=nmsmtp1.Transaction('auth login'); //开始认证
if nmsmtp1.ReplyNumber =334 then //返回值为334,让你输入用BASE64编码后的用户名
StatusBar1.SimpleText:=nmsmtp1.Transaction(EncodeBase64(Edit2.Text));
if nmsmtp1.ReplyNumber =334 then // 返回值为334,让你输入用BASE64编码后的用户密码
StatusBar1.SimpleText:=nmsmtp1.Transaction(EncodeBase64(Edit3.Text));
if nmsmtp1.ReplyNumber =235 then
begin
StatusBar1.SimpleText:='successful';
AuthSucc:=true;
end;
end;

Base64编码过程复杂了点,所以没有贴出代码,你可以到我的主页上下一个例子看看!
 
多人接受答案了。
 
To twos
>控件有两个方面要修改,
>一个是Subject乱码的问题
>二个是163不能发信的问题


能将修改过的单元,发给我吗?
smartcn@vip.sina.com
谢谢:)
 
后退
顶部