Fsend.Host :='smtp.163.com';
Fsend.Port :=25;
FSend.UserID:='penghonglsy';
FSend.Password:='********';
try
FSend.connect;
finally
FSend.disconnect;
showmessage('连接不成功!');
end;
我的是宽带,网速是512k 为什么老是连接不成功呢???
Fsend.Port :=25;
FSend.UserID:='penghonglsy';
FSend.Password:='********';
try
FSend.connect;
finally
FSend.disconnect;
showmessage('连接不成功!');
end;
我的是宽带,网速是512k 为什么老是连接不成功呢???
解决方案 »
- 能否设置chart只限制显示数据个数?
- 写了个比Spy++好用(个人觉得,呵呵)的窗口类观察器
- 求!点击出现日历,然后选择日期为数据库查询条件!我该怎么做啊?
- 如何读取本机的硬件配置信息--大家帮帮忙吧!!!
- CSDN的BLOG,从哪可以修改它的页面啊?
- 程序员问题,在线等:::::::::::??????????
- 一个LABEL在一个循环过程中为何显示不了东西?
- 用image显示图片时很大,有什么方法可以按照比例来缩小,以便可以看到整副图片?
- ******* 马上就给分,所以给的少了点,大家别介意 ********
- 抢分问题, 快来啊, 会者不难, 分不多,但容易得, 本人一向诚实可信, 保证给分
- 大家看看!!!!
- 介绍几本delphi关于数据库编程的书
// 窗体上有一个 BUTTON 控件 ,一个 LABEL 控件 ,一个 NMSMTP 控件
// 带密码险证的邮件发送程序需要 BASE64 编码 ,DecodeBase64 和 EncodeBase64
// 为解码和编码函数
// 在 263 、 163 和 SOHU 上都能发送成功
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Psock, NMsmtp, ComCtrls;type
TForm1 = class(TForm)
NMSMTP1: TNMSMTP;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure NMSMTP1Connect(Sender: TObject);
procedure NMSMTP1InvalidHost(var Handled: Boolean);
procedure NMSMTP1ConnectionFailed(Sender: TObject);
procedure NMSMTP1Status(Sender: TComponent; Status: String);
procedure NMSMTP1SendStart(Sender: TObject);
procedure NMSMTP1Success(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;//BaseTable 为 BASE64 码表
const BaseTable:string='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';var
Form1: TForm1;
AuthSucc:boolean;// 是否需要密码验证
function DecodeBase64(Source:string):string; // 解码函数
function FindInTable(CSource:char):integer; //
function EncodeBase64(Source:string):string; // 编码函数
implementation{$R *.DFM}//
function FindInTable(CSource:char):integer;
begin
result:=Pos(string(CSource),BaseTable)-1;
end;
////
function DecodeBase64(Source:string):string;
var
SrcLen,Times,i:integer;
x1,x2,x3,x4,xt:byte;
begin
result:='';
SrcLen:=Length(Source);
Times:=SrcLen div 4;
for i:=0 to Times-1 do
begin
x1:=FindInTable(Source[1+i*4]);
x2:=FindInTable(Source[2+i*4]);
x3:=FindInTable(Source[3+i*4]);
x4:=FindInTable(Source[4+i*4]);
x1:=x1 shl 2;
xt:=x2 shr 4;
x1:=x1 or xt;
x2:=x2 shl 4;
result:=result+chr(x1);
if x3= 64 then break;
xt:=x3 shr 2;
x2:=x2 or xt;
x3:=x3 shl 6;
result:=result+chr(x2);
if x4=64 then break;
x3:=x3 or x4;
result:=result+chr(x3);
end;
end;/////
function EncodeBase64(Source:string):string;
var
Times,LenSrc,i:integer;
x1,x2,x3,x4:char;
xt:byte;
begin
result:='';
LenSrc:=length(Source);
if LenSrc mod 3 =0 then Times:=LenSrc div 3
else Times:=LenSrc div 3 + 1;
for i:=0 to times-1 do
begin
if LenSrc >= (3+i*3) then
begin
x1:=BaseTable[(ord(Source[1+i*3]) shr 2)+1];
xt:=(ord(Source[1+i*3]) shl 4) and 48;
xt:=xt or (ord(Source[2+i*3]) shr 4);
x2:=BaseTable[xt+1];
xt:=(Ord(Source[2+i*3]) shl 2) and 60;
xt:=xt or (ord(Source[3+i*3]) shr 6);
x3:=BaseTable[xt+1];
xt:=(ord(Source[3+i*3]) and 63);
x4:=BaseTable[xt+1];
end
else if LenSrc>=(2+i*3) then
begin
x1:=BaseTable[(ord(Source[1+i*3]) shr 2)+1];
xt:=(ord(Source[1+i*3]) shl 4) and 48;
xt:=xt or (ord(Source[2+i*3]) shr 4);
x2:=BaseTable[xt+1];
xt:=(ord(Source[2+i*3]) shl 2) and 60;
x3:=BaseTable[xt+1];
x4:='=';
end else
begin
x1:=BaseTable[(ord(Source[1+i*3]) shr 2)+1];
xt:=(ord(Source[1+i*3]) shl 4) and 48;
x2:=BaseTable[xt+1];
x3:='=';
x4:='=';
end;
result:=result+x1+x2+x3+x4;
end;
end;//////////
procedure TForm1.Button1Click(Sender: TObject);
var
MailTo,MailBody:TStringList;
begin
Nmsmtp1.Host :='smtp.sohu.com';
nmsmtp1.Port :=25;
nmsmtp1.UserID :='linbch';// 发信人的用户名 ,必须是真实的
nmsmtp1.ReportLevel :=1;
Nmsmtp1.TimeOut :=10000;
nmsmtp1.Connect ; /// 连接
if AuthSucc=true then //// 验证成功
begin
MailTo:=TStringList.Create;
MailTo.Add('[email protected]');
MailBody.Add('Hello it is a test');
nmsmtp1.PostMessage.FromAddress:='[email protected]'; // 发信人的电子邮件地址
nmsmtp1.PostMessage.ToAddress :=MailTo;
nmsmtp1.PostMessage.Body:=MailBody;
nmsmtp1.PostMessage.Subject :='My test';
Mailto.Clear ;
//Mailto.Add('c:\a.txt');
//Mailto.Add('c:\b.txt');
//nmsmtp1.PostMessage.Attachments:=MailTo; 附件
MailTo.Free ;
MailBody.Free;
nmsmtp1.SendMail;
end;
end;procedure TForm1.NMSMTP1Connect(Sender: TObject);
begin
////// 连接成功 ,下面用户认证过程
label1.caption:=nmsmtp1.Status;
if nmsmtp1.ReplyNumber = 250 then
label1.caption:=nmsmtp1.Transaction('auth login'); // 开始认证
if nmsmtp1.ReplyNumber =334 then // 返回值为 334,让你输入用 BASE64 编码后的用户名
label1.caption:=nmsmtp1.Transaction('YWFhYWE=');// 用户名 aaaaa
if nmsmtp1.ReplyNumber =334 then // 返回值为 334,让你输入用 BASE64 编码后的用户密码
label1.caption:=nmsmtp1.Transaction('MTIzNDU2'); // 密码为 123456
if nmsmtp1.ReplyNumber =235 then
begin
label1.caption:='successful';
AuthSucc:=true;
end;
//showmessage(label1.caption);
end;procedure TForm1.NMSMTP1InvalidHost(var Handled: Boolean);
begin
label1.caption :='Invalid Host';
end;procedure TForm1.NMSMTP1ConnectionFailed(Sender: TObject);
begin
label1.caption :='connect failed';
end;procedure TForm1.NMSMTP1Status(Sender: TComponent; Status: String);
begin
label1.caption :=nmsmtp1.Status ;
end;procedure TForm1.NMSMTP1SendStart(Sender: TObject);
begin
label1.Caption :='start send';
end;procedure TForm1.NMSMTP1Success(Sender: TObject);
begin
label1.Caption:='send success!';
end;end.