妖哥和各位高手助我解惑

lllyyy2403 2009-09-15 09:17:39
我想用NMSMTP组件发送可邮件,可怎么也找不到其关于用户密码验证的功能与属性。查找了不少资料都没有提到这个问题。不得已用没有密码验证的NMSMPT组件发送测试,果然跳出:530 Authentication required错误信息, 表示服务器要求用户密码验证。请哪位高人指点一二助我解惑?
...全文
182 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lllyyy2403 2009-09-16
  • 打赏
  • 举报
回复
谢谢各位,我已经自己搞定。我原来在VC上用控制台编了个发邮件的程序用起来真是别扭,看来CB还真是方便啊。
lllyyy2403 2009-09-16
  • 打赏
  • 举报
回复
妖哥和各位高手,我已经找到了delphi版本的方式,请各位帮忙把下列代码转换成C++BUILDER代码就可以了。下列nmsmtp1.Transacton相当与CB中的什么命令?还有EncodeString('Password')又对应与CB中的什么???
var strUserName, strPassword: String;
begin
strUserName := EncodeString('CoolSlob');//CoolSlob是服务器的帐号
strPassword := EncodeString('Password');//Password是密码
{进行认证,输入编码后的用户名、密码}
nmsmtp1.Transaction('EHLO') ;
nmsmtp1.Transaction('AUTH LOGIN');
nmsmtp1.Transaction(strUserName);
nmsmtp1.Transaction(strPassword);
StatusBar1.SimpleText := '连接成功';
end;
lllyyy2403 2009-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xjq2003 的回复:]
发送电子邮件

2000年第一期的《电脑报》刊登了题目为《自己动手编写电子邮件软件》的文章,文章讲述了如何用VB编写一个简单的电子邮件发送程序。其实,如果你是一个C++Builder爱好者,完全可以更快、更简捷地编写出这类软件。请听我下文分解:
  与E-mail密切相关的两个协议是POP3和SMTP,POP3是Post Protocol 3的缩写,用于从POP3服务器接收电子邮件,SMTP是Simple Mail Transfer Protocol的缩写,用于通过SMTP服务器发送电子邮件。这两个协议本身是很复杂的,但C++Builder从NetManage公司引进了POP、SMTP控件,这样,我们完全可以不去管那些收发邮件的机理,只要设置好这些控件就可以编出一个C++Builder的发送邮件程序了。下面介绍SMTP控件:
  SMTP控件位于控件栏的Internet页面上,名称为:NMSMTP。SMTP的主要属性有:
  Host属性,用来指定SMTP服务器的主机名。
  Port属性,用于指定SMTP服务器的端口号,一般设为25。
  UserId属性,登录SMTP服务器时用于设置用户名。
  PostMessage属性,此属性非常重要,从以下它的内容你就可以看出来了:
  FromName 用于指定发件人的名称。
  FromAddress 用于指定发件人的e-mail地址。
  LocalProgram 用于指定发件人所使用的邮件客户程序。
  ToAddress 收件人的地址。
  Body 邮件正文。
  Subject 邮件主题。
  SMTP控件的方法:
  Connect函数,用于登录到SMTP服务器,使用此函数前,Host、Port、UserId等属性必须已设好。
  Disconnect函数,用于断开与SMTP服务器的连接。
  SendMail函数,用于向SMTP服务器发送邮件。知道了这些,我们就可以写程序了。
  新建应用程序,将工程名保存为sendmail,在Form1上加入NMSMTP控件,Host属性添入SMTP服务器的名称,如:“smtp.yeah.net”,UserId属性添入你在此邮箱申请的用户名,其它属性保持默认值;加入4个Label控件,将其Caption分别设为:“发件人名称”、“收件人地址”、“邮件主题”和“邮件正文”;加入4个Edit控件,将其Name分别设为:“Name1”、“Address1”、“Subject1”和“Body1”;一个SpeedButton控件,Caption为:“发送”(以上属性均不含引号),Click事件代码为:
  NMSMTP1->Connect();
  NMSMTP1->PostMessageA->FromName=Name1->Text;
  NMSMTP1->PostMessageA->FromAddress=〃superlink@yeah.net〃;
  NMSMTP1->PostMessageA->ToAddress->Add(Address1->Text);
  NMSMTP1->PostMessageA->Subject=Subject1->Text;
  NMSMTP1->PostMessageA->Body->Add(Body1->Text);
  NMSMTP1->PostMessageA->LocalProgram=〃SendMail〃;
  NMSMTP1->SendMail();
  Application->MessageBoxA(〃发送完成!〃,〃邮件系统〃,MB_OK);
  NMSMTP1->Disconnect();
完成!有人不禁要问:“就这么简单?”,的确就这么简单。不过,NMSMTP控件还有大量的功能没在此一一列出,同时还有NMPOP3控件可用来编写接收邮件的程序,如果喜爱C++Builder的朋友感兴趣,完全可以写出象OutLook Express、FoxMail这样的电子邮件软件。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xjq2003/archive/2004/02/26/21488.aspx
[/Quote]
你说的方法没用,我早用过了,出现开头所示的要求验证用户名和密码的功能。
痞子酷 2009-09-15
  • 打赏
  • 举报
回复
呵呵~~
xjq2003 2009-09-15
  • 打赏
  • 举报
回复
发送电子邮件

2000年第一期的《电脑报》刊登了题目为《自己动手编写电子邮件软件》的文章,文章讲述了如何用VB编写一个简单的电子邮件发送程序。其实,如果你是一个C++Builder爱好者,完全可以更快、更简捷地编写出这类软件。请听我下文分解:
  与E-mail密切相关的两个协议是POP3和SMTP,POP3是Post Protocol 3的缩写,用于从POP3服务器接收电子邮件,SMTP是Simple Mail Transfer Protocol的缩写,用于通过SMTP服务器发送电子邮件。这两个协议本身是很复杂的,但C++Builder从NetManage公司引进了POP、SMTP控件,这样,我们完全可以不去管那些收发邮件的机理,只要设置好这些控件就可以编出一个C++Builder的发送邮件程序了。下面介绍SMTP控件:
  SMTP控件位于控件栏的Internet页面上,名称为:NMSMTP。SMTP的主要属性有:
  Host属性,用来指定SMTP服务器的主机名。
  Port属性,用于指定SMTP服务器的端口号,一般设为25。
  UserId属性,登录SMTP服务器时用于设置用户名。
  PostMessage属性,此属性非常重要,从以下它的内容你就可以看出来了:
  FromName 用于指定发件人的名称。
  FromAddress 用于指定发件人的e-mail地址。
  LocalProgram 用于指定发件人所使用的邮件客户程序。
  ToAddress 收件人的地址。
  Body 邮件正文。
  Subject 邮件主题。
  SMTP控件的方法:
  Connect函数,用于登录到SMTP服务器,使用此函数前,Host、Port、UserId等属性必须已设好。
  Disconnect函数,用于断开与SMTP服务器的连接。
  SendMail函数,用于向SMTP服务器发送邮件。知道了这些,我们就可以写程序了。
  新建应用程序,将工程名保存为sendmail,在Form1上加入NMSMTP控件,Host属性添入SMTP服务器的名称,如:“smtp.yeah.net”,UserId属性添入你在此邮箱申请的用户名,其它属性保持默认值;加入4个Label控件,将其Caption分别设为:“发件人名称”、“收件人地址”、“邮件主题”和“邮件正文”;加入4个Edit控件,将其Name分别设为:“Name1”、“Address1”、“Subject1”和“Body1”;一个SpeedButton控件,Caption为:“发送”(以上属性均不含引号),Click事件代码为:
  NMSMTP1->Connect();
  NMSMTP1->PostMessageA->FromName=Name1->Text;
  NMSMTP1->PostMessageA->FromAddress=〃superlink@yeah.net〃;
  NMSMTP1->PostMessageA->ToAddress->Add(Address1->Text);
  NMSMTP1->PostMessageA->Subject=Subject1->Text;
  NMSMTP1->PostMessageA->Body->Add(Body1->Text);
  NMSMTP1->PostMessageA->LocalProgram=〃SendMail〃;
  NMSMTP1->SendMail();
  Application->MessageBoxA(〃发送完成!〃,〃邮件系统〃,MB_OK);
  NMSMTP1->Disconnect();
完成!有人不禁要问:“就这么简单?”,的确就这么简单。不过,NMSMTP控件还有大量的功能没在此一一列出,同时还有NMPOP3控件可用来编写接收邮件的程序,如果喜爱C++Builder的朋友感兴趣,完全可以写出象OutLook Express、FoxMail这样的电子邮件软件。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xjq2003/archive/2004/02/26/21488.aspx
wg961423 2009-09-15
  • 打赏
  • 举报
回复
一直没有用NMSMTP,都是用的Indy的控件。
lllyyy2403 2009-09-15
  • 打赏
  • 举报
回复
怎么没人回答问题,自己顶一下。

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧