怎样用程序实现发送Email,新手请教 :)谢谢谢谢 我当然知道用smtp控件,就是delphi自带的NMsmtp控件,可是如果是拨号上网就应该没问题发送出去……通过代理服务器?????谢谢两位 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果代理服务器支持SOCKS5或SOCKS4协议可以使用这些协议 如果代理服务器支持邮件转发,参考代理服务器的说明 如果代理服务器支持NAT,你不需要修改任何内容(包括Windows2000共享上网,WinProxy等软件) 我有个例子:unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Psock, NMsmtp, ComCtrls;const WM_LOGIN =WM_USER+100;Type TWM = record Msg: WORD; wParam:Word; lParam:DWORD; end;type TForm1 = class(TForm) Label1: TLabel; NMSMTP1: TNMSMTP; GroupBox1: TGroupBox; Label4: TLabel; Edit3: TEdit; Label5: TLabel; Edit4: TEdit; GroupBox2: TGroupBox; Label2: TLabel; Label3: TLabel; Edit1: TEdit; Edit2: TEdit; Edit5: TEdit; Label6: TLabel; Edit6: TEdit; ListBox1: TListBox; btnAttach: TButton; Memo1: TMemo; btnSend: TButton; StatusBar1: TStatusBar; OpenDialog1: TOpenDialog; procedure FormCreate(Sender: TObject); procedure NMSMTP1Connect(Sender: TObject); procedure btnSendClick(Sender: TObject); procedure NMSMTP1ConnectionFailed(Sender: TObject); procedure NMSMTP1Disconnect(Sender: TObject); procedure NMSMTP1HostResolved(Sender: TComponent); procedure NMSMTP1InvalidHost(var Handled: Boolean); procedure NMSMTP1SendStart(Sender: TObject); procedure NMSMTP1Success(Sender: TObject); procedure btnAttachClick(Sender: TObject); procedure ListBox1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } procedure WMLOGIN(var Msg:TWM);Message WM_LOGIN; public { Public declarations } end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);begin //server info Edit1.Text:='10.13.101.10'; Edit2.Text:='25'; //User info Edit3.Text:='Bowman'; Edit4.Text:='[email protected]'; //Empty Other Edit5.Text:=''; Edit6.Text:=''; Memo1.Text:='';end;procedure TForm1.WMLOGIN(var Msg: TWM);begin //Send mail //write receiver info NMSMTP1.PostMessage.FromAddress := Edit4.Text; NMSMTP1.PostMessage.FromName := Edit3.Text; NMSMTP1.PostMessage.Subject := Edit6.Text; NMSMTP1.PostMessage.ToAddress.Add(Edit5.Text); NMSMTP1.PostMessage.Attachments.AddStrings(Listbox1.Items); NMSMTP1.PostMessage.Body.Assign(Memo1.Lines); //send it NMSMTP1.SendMail; //disconnect finally NMSMTP1.Disconnect;end;procedure TForm1.NMSMTP1Connect(Sender: TObject);begin //update view StatusBar1.SimpleText:='Connected'; StatusBar1.Update; //post message SendMessage(Handle,WM_LOGIN,0,0);end;procedure TForm1.btnSendClick(Sender: TObject);begin //valid check //server info if Edit1.text='' then exit; if Edit2.Text='' then exit; //usr info if Edit3.Text='' then exit; //receiver info if Edit5.Text='' then exit; //set server info NMSMTP1.Host := Edit1.Text; NMSMTP1.Port := StrToInt(Edit2.Text); NMSMTP1.UserID:=Edit3.Text; //update view StatusBar1.SimpleText:='Connecting...'; StatusBar1.Update; //connect NMSMTP1.Connect;end;procedure TForm1.NMSMTP1ConnectionFailed(Sender: TObject);begin ShowMessage('Connection Failed');end;procedure TForm1.NMSMTP1Disconnect(Sender: TObject);begin If StatusBar1 <> nil then StatusBar1.SimpleText := 'Disconnected from server';end;procedure TForm1.NMSMTP1HostResolved(Sender: TComponent);begin StatusBar1.SimpleText := 'HostResolved';end;procedure TForm1.NMSMTP1InvalidHost(var Handled: Boolean);begin StatusBar1.SimpleText := 'InvalidHost';end;procedure TForm1.NMSMTP1SendStart(Sender: TObject);begin StatusBar1.SimpleText := 'SendStart';end;procedure TForm1.NMSMTP1Success(Sender: TObject);begin StatusBar1.SimpleText := 'Success';end;procedure TForm1.btnAttachClick(Sender: TObject);begin //select attach file if OpenDialog1.Execute then ListBox1.Items.Add( OpenDialog1.FileName);end;procedure TForm1.ListBox1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);var idex:integer;begin //valid check if ListBox1.ItemIndex=-1 then exit; //key detect if Key<> VK_DELETE then exit; idex:=listbox1.ItemIndex; listbox1.Items.Delete(idex);end;end. need rept ???我用的是21cn的免费邮,提示上面的错误信息????? need RCPT ??? 我用的是21cn的免费邮,提示上面的错误信息????? 据说各个mail服务商所用的协议不尽相同,所以,你不要指望随便找一个控件就可以全世界发mail了,还是自己看看rfc的文档吧! 发送邮件除了smtp协议还有什么协议是可以发送邮件的啊!请高手指点一二,呵呵! 怎样可以实现打印并预览窗体? 代码越简单越好 虚心 请教 一个 关于 图像对比 的 一个问题。 SQL SERVER 中怎么样把数据库从SQL企业管理器中移除,而不是把test.mdf文件从硬盘上删除 关于组件遍历 如何实现dbgrid控件中boolean数据的选取问题,用方框打勾表示(紧急) XML文件遍历问题 高手们帮忙解决调用应用服务器程序死机问题,有高分相送! 关注(高分)!!!!!!!!!!!!!!!!! 求教adoconecttion的连接字串 请问那里可以下载好的电子图书呢? 两个delphi内嵌汇编的函数看不懂,请各位大侠帮帮忙! 有人知道如何编程更改手机的背景图片么?
如果代理服务器支持邮件转发,参考代理服务器的说明
如果代理服务器支持NAT,你不需要修改任何内容(包括Windows2000共享上网,WinProxy等软件)
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Psock, NMsmtp, ComCtrls;
const
WM_LOGIN =WM_USER+100;
Type
TWM = record
Msg: WORD;
wParam:Word;
lParam:DWORD;
end;
type
TForm1 = class(TForm)
Label1: TLabel;
NMSMTP1: TNMSMTP;
GroupBox1: TGroupBox;
Label4: TLabel;
Edit3: TEdit;
Label5: TLabel;
Edit4: TEdit;
GroupBox2: TGroupBox;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit5: TEdit;
Label6: TLabel;
Edit6: TEdit;
ListBox1: TListBox;
btnAttach: TButton;
Memo1: TMemo;
btnSend: TButton;
StatusBar1: TStatusBar;
OpenDialog1: TOpenDialog;
procedure FormCreate(Sender: TObject);
procedure NMSMTP1Connect(Sender: TObject);
procedure btnSendClick(Sender: TObject);
procedure NMSMTP1ConnectionFailed(Sender: TObject);
procedure NMSMTP1Disconnect(Sender: TObject);
procedure NMSMTP1HostResolved(Sender: TComponent);
procedure NMSMTP1InvalidHost(var Handled: Boolean);
procedure NMSMTP1SendStart(Sender: TObject);
procedure NMSMTP1Success(Sender: TObject);
procedure btnAttachClick(Sender: TObject);
procedure ListBox1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
procedure WMLOGIN(var Msg:TWM);Message WM_LOGIN;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
begin
//server info
Edit1.Text:='10.13.101.10';
Edit2.Text:='25';
//User info
Edit3.Text:='Bowman';
Edit4.Text:='[email protected]';
//Empty Other
Edit5.Text:='';
Edit6.Text:='';
Memo1.Text:='';
end;procedure TForm1.WMLOGIN(var Msg: TWM);
begin
//Send mail
//write receiver info
NMSMTP1.PostMessage.FromAddress := Edit4.Text;
NMSMTP1.PostMessage.FromName := Edit3.Text;
NMSMTP1.PostMessage.Subject := Edit6.Text;
NMSMTP1.PostMessage.ToAddress.Add(Edit5.Text);
NMSMTP1.PostMessage.Attachments.AddStrings(Listbox1.Items);
NMSMTP1.PostMessage.Body.Assign(Memo1.Lines);
//send it
NMSMTP1.SendMail;
//disconnect finally
NMSMTP1.Disconnect;
end;procedure TForm1.NMSMTP1Connect(Sender: TObject);
begin
//update view
StatusBar1.SimpleText:='Connected';
StatusBar1.Update;
//post message
SendMessage(Handle,WM_LOGIN,0,0);
end;procedure TForm1.btnSendClick(Sender: TObject);
begin
//valid check
//server info
if Edit1.text='' then
exit;
if Edit2.Text='' then
exit;
//usr info
if Edit3.Text='' then
exit;
//receiver info
if Edit5.Text='' then
exit; //set server info
NMSMTP1.Host := Edit1.Text;
NMSMTP1.Port := StrToInt(Edit2.Text);
NMSMTP1.UserID:=Edit3.Text;
//update view
StatusBar1.SimpleText:='Connecting...';
StatusBar1.Update;
//connect
NMSMTP1.Connect;
end;procedure TForm1.NMSMTP1ConnectionFailed(Sender: TObject);
begin
ShowMessage('Connection Failed');
end;procedure TForm1.NMSMTP1Disconnect(Sender: TObject);
begin
If StatusBar1 <> nil then
StatusBar1.SimpleText := 'Disconnected from server';
end;procedure TForm1.NMSMTP1HostResolved(Sender: TComponent);
begin
StatusBar1.SimpleText := 'HostResolved';
end;procedure TForm1.NMSMTP1InvalidHost(var Handled: Boolean);
begin
StatusBar1.SimpleText := 'InvalidHost';
end;procedure TForm1.NMSMTP1SendStart(Sender: TObject);
begin
StatusBar1.SimpleText := 'SendStart';
end;procedure TForm1.NMSMTP1Success(Sender: TObject);
begin
StatusBar1.SimpleText := 'Success';
end;procedure TForm1.btnAttachClick(Sender: TObject);
begin
//select attach file
if OpenDialog1.Execute then
ListBox1.Items.Add(
OpenDialog1.FileName);
end;procedure TForm1.ListBox1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
idex:integer;
begin
//valid check
if ListBox1.ItemIndex=-1 then
exit;
//key detect
if Key<> VK_DELETE then
exit;
idex:=listbox1.ItemIndex;
listbox1.Items.Delete(idex);
end;end.
我用的是21cn的免费邮,提示上面的错误信息?????