我用公司的邮箱做实验,用下面的代码先连接上公司的邮件服务器然后 buffer:='HELO'+#13#10;
send(s,buffer,length(buffer),0); buffer:='MAIL FROM:[email protected]'+#13#10;
send(s,buffer,length(buffer),0); buffer:='RCPT TO:[email protected]'+#13#10;
send(s,buffer,length(buffer),0); buffer:='DATA'+#13#10;
send(s,buffer,length(buffer),0); buffer:='FROM:[email protected]'+#13#10;
send(s,buffer,length(buffer),0); buffer:='TO:[email protected]'+#13#10;
send(s,buffer,length(buffer),0); buffer:='SUBJECT:just a test!'+#13#10;
send(s,buffer,length(buffer),0); buffer:='I LOVE THIS GAME!'+#13#10;
send(s,buffer,length(buffer),0); buffer:='.'+#13#10;
send(s,buffer,length(buffer),0); buffer:='QUIT'+#13#10;
send(s,buffer,length(buffer),0); closesocket(s);邮件可以发出去,也能收到为什么把地址改成163的smtp,就不行了呢?
send(s,buffer,length(buffer),0); buffer:='MAIL FROM:[email protected]'+#13#10;
send(s,buffer,length(buffer),0); buffer:='RCPT TO:[email protected]'+#13#10;
send(s,buffer,length(buffer),0); buffer:='DATA'+#13#10;
send(s,buffer,length(buffer),0); buffer:='FROM:[email protected]'+#13#10;
send(s,buffer,length(buffer),0); buffer:='TO:[email protected]'+#13#10;
send(s,buffer,length(buffer),0); buffer:='SUBJECT:just a test!'+#13#10;
send(s,buffer,length(buffer),0); buffer:='I LOVE THIS GAME!'+#13#10;
send(s,buffer,length(buffer),0); buffer:='.'+#13#10;
send(s,buffer,length(buffer),0); buffer:='QUIT'+#13#10;
send(s,buffer,length(buffer),0); closesocket(s);邮件可以发出去,也能收到为什么把地址改成163的smtp,就不行了呢?
对头...
用delphi自己的idsmtp控件就可以实现,类似下面代码 var
mailaddress:TIdEMailAddressItem;
i:integer;
begin
try
if FIdSMTP.Connected then
FIdSMTP.Disconnect;
FIdMessage.charset:='GB2312_CHARSET';
FIdMessage.ContentType:='text/html';
FIdSMTP.Host :='邮件服务器';
FIdSMTP.AuthenticationType := atLogin;
FIdSMTP.Username := '用户名';
FIdSMTP.Password := '密码';
FIdSMTP.Connect;
if FIdSMTP.Authenticate then
begin
//发信人
FIdMessage.From.Address := FFromAddress;
FIdMessage.From.Name := FFromUser;
FIdMessage.Recipients.Clear;
FIdMessage.ReplyTo.Clear;
for i:=0 to FToAddress.Count-1 do
begin
mailaddress := FIdMessage.Recipients.Add;
mailaddress.Address := FToAddress[i];
end;
mailaddress := FIdMessage.ReplyTo.Add;
mailaddress.Address := '回复地址';
//主题
FIdMessage.subject:= FTopic;
//信件内容
with FIdMessage.Body do
begin
Clear;
Add(' <Html>');
Add(' <style type="text/css">');
Add(' <!--');
Add('.STYLE7 {');
Add(' font-size: 24px;');
Add(' font-family: "宋体";');
Add(' font-weight: bold;');
Add('}');
Add('.STYLE9 {color: #0066FF}');
Add('.STYLE23 {font-weight: bold; font-size: 13pt; }');
Add('.STYLE24 {color: #FF0000}');
Add('.STYLE25 {');
Add(' color: #0000FF;');
Add(' font-weight: bold;');
Add('} ');
Add('.STYLE26 {');
Add(' color: #993300;');
Add(' font-weight: bold;');
Add('}');
Add('.STYLE27 {color: #993300}');
Add('-->');
Add(' </style>');
Add(' <Body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">');
Add(' <Font Size=3>');
Add(' <BR>');
Add(' <span class="STYLE23">内容:'+FContent[0]+' </span> <BR>');
Add(' </Font>');
Add(' </Body>');
Add(' </Html>');
end;
//发送
try
FIdSMTP.Send(FIdMessage);
except
Result := false;
end;
end else
begin
result := false;
end;
finally
if FIdSMTP.Connected then
FIdSMTP.Disconnect;
end;