在邮件发送中Rcpt to的用法,简单说明即可。(50分)

  • 主题发起人 Delphi XP
  • 开始时间
D

Delphi XP

Unregistered / Unconfirmed
GUEST, unregistred user!
在实现群发中不知道怎么用Rcpt To命令,请高手指明,简单的例子即可。
请高手帮吗,立刻分配分数!
 
  国内好些smtp服务器不支持用telnet来发信,部分国外的smtp服务器是可以的,速度还
行。使用telnet来发信的方法是:
1.打开telnet;
2.输入smtp地址和端口25(默认端口);
2.连接成功后你会看到那个smtp服务器的信息;
3.输入mail from:abc@chinaren.com并回车(这个是发信人的邮箱,可以乱写或不写);
4.输入rcpt to:bbb@sohu.com并回车(这是收信人的邮箱,一定要正确填写,不然那人就收不到信了);
5.输入date并回车;
6.写入信件内容,写完后输入".",注意不要输入双引号。
7.到此邮件就写完了,回车后就会发出去。
 
to honestMan:麻烦你说一下在Delphi中怎么写语句?
 
{

匿名服务http://cn.google.yahoo.com/bin/query_cn?p=%c4%e4%c3%fb%2csmtp%2cmail&u=g&y=y&hc=0&hs=0

http://www.fiec.com/member/NE_Note.html

http://www.mypcera.com/softxue/txt2/aymail.htm

http://www.zhanjiang.gd.cn/home/jinyt/qd/net/email.htm

smtp----- http://www.zhanjiang.gd.cn/home/jinyt/qd/eschool/documents/kfzyd/linux1/0074.shtml.htm

pop3----- http://www.zhanjiang.gd.cn/home/jinyt/qd/eschool/documents/kfzyd/linux1/0062.shtml.htm

--------------ANONYMOUS---------

this is a mail bome

directed by njhhack

last updated:2001.5.21

version 1.0

copyrigth(c) 2001 allrights reserverd

}

program XMail;



uses

windows,winsock,sysutils;



{$R *.RES}

const

CRLF=#13#10;

var

count,err:integer;

wsadata:twsadata;

fsocket,fport,step:integer;

SockAddrIn:TSockAddrIn;

fhost,s1,password:string;

sbuf:array[0..1024] of char;



procedure MailSend;

begin

err:=recv(FSocket,sbuf,400,0);

writeln(format('Recv=%x,Mes=%s',[err,sbuf]));

s1:=strpas(sbuf);

inc(step);

// readln;

case step of

1:s1:='HELO smtp.hacker.com'+CRLF;

2:s1:='MAIL FROM: '+CRLF;

3:s1:='RCPT TO: '+CRLF;

4:s1:='DATA'+CRLF;

5:s1:=//'From:"bome"'+CRLF

//+'To:"njhhack"'+CRLF

//+'Subject:Welcome My Baby.'+CRLF

CRLF

+'Hello World.中国'+CRLF

+'.'+CRLF;

6:s1:='QUIT'+CRLF;

else

step:=0;

end;

strcopy(sbuf,pchar(s1));

err:=send(FSocket,sbuf,strlen(sbuf),MSG_DONTROUTE);

writeln(format('Send=%x,Mes=%s',[err,sbuf]));

end;





procedure MailRecv;

begin

err:=recv(FSocket,sbuf,400,0);

writeln(format('Recv=%x,Mes=%s',[err,sbuf]));

s1:=strpas(sbuf);

password:='731028';

if step=2 then

begin

if s1[1]='-' then

begin

password:='731028';

dec(step);

end;

end;

inc(step);

case step of

1:s1:='USER njhhack'+CRLF;

2:s1:='PASS '+password+CRLF;

3:s1:='STAT'+CRLF;

4:s1:='LIST'+CRLF;

5:s1:='RETR 1'+CRLF;

//6:s1:='DELE 1'+CRLF;

6:s1:='QUIT'+CRLF;

else step:=0;

end;

strcopy(sbuf,pchar(s1));

err:=send(FSocket,sbuf,strlen(sbuf),MSG_DONTROUTE);

writeln(format('Send=%x',[err]));

end;









procedure mailproc;

begin

err:=WSAStartup($0101,WSAData);

writeln(format('WSAStartup=%x',[err]));

FSocket := socket(PF_INET, SOCK_STREAM,IPPROTO_IP);

writeln(format('Socket=%x',[Fsocket]));

// 202.104.32.234 pop.21cn.com 110

// 202.104.32.230 smtp.21cn.com 25

// 61.155.13.150 pub.nt.jsinfo.net 25

// 202.108.44.212(205,222) smtp.163.com 25

// 202.108.255.210 163.net

// smtp.etang.com

// smtp.china.com

// EHLO

// AUTH LOGIN

fhost:='202.104.32.230';

fport:=25;

SockAddrIn.sin_addr.s_addr:=inet_addr(PChar(FHost));

SockAddrIn.sin_family := PF_INET;

SockAddrIn.sin_port :=htons(Fport);

err:=connect(FSocket,SockAddrIn, SizeOf(SockAddrIn));

writeln(format('Connect=%x',[err]));

strcopy(sbuf,'HELLO'#13#10#13#10);

step:=0;

repeat

MailSend;

//MailRecv;

until step=0;

//err:=send(FSocket,sbuf,strlen(sbuf),MSG_DONTROUTE);

//writeln(format('Send=%x',[err]));

//err:=recv(FSocket,sbuf,400,0);

//writeln(format('Recv=%x,Mes=%s',[err,sbuf]));

err:=closesocket(FSocket);

writeln(format('Close=%x',[err]));

err:=WSACleanup;

writeln(format('WSACleanup=%x',[err]));

end;





begin

mailproc;

// readln;

end.



//////////////////////////////////////////////////////////////////////////////

作者:倪建华

Copyright (C) 2001-5-13 Allright Reserved.



 
这跟Delphi有什么关系,这是发送到邮件服务器的命令,
各个控件发送的方法不一样,但只要发送
rcpt to:<a@b.c>
给服务器,就表示要发送给a@b.c这个人,多个rcpt to就
发送给多个人。
 
有没有哪个好使的服务器,让我来试试?
 
to 楼上:有,好像Smtp.kali.com.cn就可以!
 
由于CoolBaby,特意发了历程,所以多得点了,由于分数太少,请多多包含!
 
顶部