求助!有谁用过AHM中的AHMSMTPMail控件发送邮件啊?(200分)

  • 主题发起人 小小小虾米
  • 开始时间

小小小虾米

Unregistered / Unconfirmed
GUEST, unregistred user!
[red]请问各位大侠,有谁用过AHM中的AHMSMTPMail控件发送邮件,能否给我个例子;AHM中的自带例子无法发送,我在发送的时候总是出现"503 Error: need EHLO and AUTH first !"这个错误.不知道什么原因,谁能指点一下!谢谢![/red]
 
你一定要用这个控件来发邮件吗?你这个报错好像是没有先登录验证所致。我觉得发送邮件没有必要用这个控件,用Indy或直接用WinSock编写都可以的。
 
我是想用来发送带附件的邮件,听不少人评论这个控件蛮不错的,所以就想试试看.
不知道这个错误应该怎么解决呢?
 
这是它自带例子的代码:
procedure TForm1.Button1Click(Sender: TObject);
var I : Integer;
begin
if AHMAccountHolder1.Accounts.Count=0 then
with AHMAccountHolder1.Accounts.Adddo
begin
AccountName:='Current Account';
SMTPServer:=Edit5.text;
Default:=True;
{Default is the account that will be used for sending messages. At least one account needs to default to send messages}
end else
with AHMAccountHolder1.Accounts[0]do
begin
AccountName:='Current Account';
SMTPServer:=Edit5.text;
end;
with AHMSMTPMail1.Messages.Adddo
try
Subject :=Edit1.Text;
SendTo :=Edit2.text;
Message.Text:=Memo1.Lines.Text;
FromMail :=Edit3.Text;
ReplyTo :=Edit3.Text;
FromName :=edit4.text;
//Having stored the filenames of wanted attachments within a listbox you cando
the following
if Listbox1.Items.Count>0 then
For I:=0 to Listbox1.Items.Count-1do
Attachments.Add(Listbox1.Items);
AHMSMTPMail1.Execute;
finally
Free;
end;
end;
 
后来我改成这样也不行:
procedure TForm1.Button1Click(Sender: TObject);
var I : Integer;
begin
if AHMAccountHolder1.Accounts.Count=0 then
with AHMAccountHolder1.Accounts.Adddo
begin
AccountName:='Current Account';
SMTPServer:=Edit5.text;
Username:='xxxxxxxx';
Password:='123456';
//SMTPPort:=25;
Default:=True;
{Default is the account that will be used for sending messages. At least one account needs to default to send messages}
end else
with AHMAccountHolder1.Accounts[0]do
begin
AccountName:='Current Account';
SMTPServer:=Edit5.text;
Username:='xxxxxxxx';
Password:='123456';
//SMTPPort:=25;
end;
with AHMSMTPMail1.Messages.Adddo
try
Subject :=Edit1.Text;
SendTo :=Edit2.text;
Message.Text:=Memo1.Lines.Text;
FromMail :=Edit3.Text;
ReplyTo :=Edit3.Text;
FromName :=edit4.text;
//Having stored the filenames of wanted attachments within a listbox you cando
the following
if Listbox1.Items.Count>0 then
For I:=0 to Listbox1.Items.Count-1do
Attachments.Add(Listbox1.Items);
AHMSMTPMail1.Execute;
finally
Free;
end;
end;
 
我加上了用户名和密码;
 
Indy也可以带附件的。你的报错是验证没有通过,你是用哪个邮件服务器的,我告诉你163是不行的,sohu的可以,但你要注意用户名,比如你有一个搜狐的邮箱是:abc@sohu.com,那么你的Username := 'abc@sohu.com';一定要注意这点
 
哦,谢谢!我用的是smtp.qq.com邮件服务器;
 
我用Indy的发送邮件时提示:
<abd@sohu.com>:Recipient address rejected:Access denied
是什么原因呢?邮件服务器是sohu的;
 
你搜狐的邮箱是abd@sohu.com吗?要用真实的地址、用户及密码。
 
我用的是真实的地址,用户及密码啊!
<abd@sohu.com>这里我改了一下而已,原来是我的邮箱的.
 
你的Indy是不是10.0版本?不是的话更新到10.0,如果是9.0的话你看看IdSMTP的AuthType(不知道9.0是不是这个)的属性设置。
 
我用的是10.0版的,但是还是不行,我是用Demo里面的源码编译的.POP3能用,就是SMTP不能用.szhcracker能不能把你的邮箱告诉我,我把代码发给你帮我看看呢?
 
结贴了,分给szhcracker了
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
752
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
顶部