在代理环境下如何使用IdSMPT自动发送邮件如果 如题。环境:Delphi7工具:IdSMPT发送邮件现在能实现,但是如果使用IE代理设置的时候如何实现,自动收发邮件哪? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 刚做的,可以用unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP, IdMailBox, IdIOHandler, IdIOHandlerSocket, IdIntercept, IdSocks, IdMessage;type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);var mSmtp: TIdSmtp; mMsg: TIdMessage;begin mMsg := TIdMessage.Create(nil); mMsg.ContentType := 'text/plain'; mMsg.CharSet := 'gb2312'; mMsg.From.Address := Edit1.Text; //邮件发送方 [email protected] mMsg.From.Name := '测试'; mMsg.Sender.Address := Edit1.Text; mMsg.Sender.Name := '测试'; mMsg.Recipients.EMailAddresses := Edit2.Text; //邮件接收方 [email protected] mMsg.Subject := 'test'; mMsg.Body.Clear; mMsg.Body.Add('您好!'); mSmtp := TIdSmtp.Create(nil); mSmtp.ReadTimeout := 5000; mSmtp.AuthenticationType := atLogin; mSmtp.Host := Edit3.Text; //邮件服务器地址 mSmtp.Username := Edit1.Text; mSmtp.Password := Edit4.Text; //邮箱密码 mSmtp.IOHandler := TIdIOHandlerSocket.Create(nil); mSmtp.Socket.SocksInfo := TIdSocksInfo.Create(nil); mSmtp.Socket.SocksInfo.Authentication := saUsernamePassword; mSmtp.Socket.SocksInfo.Username := 'xxxxx'; //代理服务器设置的用户名 mSmtp.Socket.SocksInfo.Password := 'yyyyy'; //代理服务器设置的密码 mSmtp.Socket.SocksInfo.Host := '192.168.1.102'; mSmtp.Socket.SocksInfo.Port := 2280; //2280为socks代理 mSmtp.Socket.SocksInfo.Version := svSocks5; mSmtp.Connect; mSmtp.Authenticate; mSmtp.Send(mMsg); mSmtp.Disconnect; mMsg.Destroy; mSmtp.Socket.SocksInfo.Destroy; mSmtp.IOHandler.Destroy; mSmtp.Destroy;end;end. 如果代理为http代理,不是socket哪? 像我们在IE浏览器设置了代理以后,我们如何得知服务器是否设置了socket代理哪,如何获取socket代理的端口哪? 注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings下面键值ProxyServer如果设置了套接字形式为:ftp=192.168.1.102:8088;http=192.168.1.102:8088;https=192.168.1.102:8088;socks=192.168.1.102:2280如果没设置为:192.168.1.102:8088读取出来字符串后pos函数查是否有'socks='串,提取出来即可 一下。这个看看,delphi的网络出了能力比较差 WaitForSingleObject等待一个线程一段时间 delphi的小问题 求教各位 郁闷,散分!~~~ 小声的问 最基础的问题 高手免进 编程之道 吐血啊,第三方控件问题。 Wallpaper Calendar这样的效果如何实现 使用idHttp怎么总觉得不爽 求助:请问treeview在数据库导航时怎么用? 欢迎进来发表言论! 请教一下,回调函数是什么?作用是什么? C语言改成delphi DBGridEh的使用。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdMessageClient, IdSMTP, IdMailBox, IdIOHandler,
IdIOHandlerSocket, IdIntercept, IdSocks, IdMessage;type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
mSmtp: TIdSmtp;
mMsg: TIdMessage;
begin
mMsg := TIdMessage.Create(nil);
mMsg.ContentType := 'text/plain';
mMsg.CharSet := 'gb2312';
mMsg.From.Address := Edit1.Text; //邮件发送方 [email protected]
mMsg.From.Name := '测试';
mMsg.Sender.Address := Edit1.Text;
mMsg.Sender.Name := '测试'; mMsg.Recipients.EMailAddresses := Edit2.Text; //邮件接收方 [email protected]
mMsg.Subject := 'test';
mMsg.Body.Clear;
mMsg.Body.Add('您好!'); mSmtp := TIdSmtp.Create(nil);
mSmtp.ReadTimeout := 5000;
mSmtp.AuthenticationType := atLogin;
mSmtp.Host := Edit3.Text; //邮件服务器地址
mSmtp.Username := Edit1.Text;
mSmtp.Password := Edit4.Text; //邮箱密码 mSmtp.IOHandler := TIdIOHandlerSocket.Create(nil);
mSmtp.Socket.SocksInfo := TIdSocksInfo.Create(nil); mSmtp.Socket.SocksInfo.Authentication := saUsernamePassword;
mSmtp.Socket.SocksInfo.Username := 'xxxxx'; //代理服务器设置的用户名
mSmtp.Socket.SocksInfo.Password := 'yyyyy'; //代理服务器设置的密码
mSmtp.Socket.SocksInfo.Host := '192.168.1.102';
mSmtp.Socket.SocksInfo.Port := 2280; //2280为socks代理
mSmtp.Socket.SocksInfo.Version := svSocks5; mSmtp.Connect;
mSmtp.Authenticate;
mSmtp.Send(mMsg);
mSmtp.Disconnect; mMsg.Destroy;
mSmtp.Socket.SocksInfo.Destroy;
mSmtp.IOHandler.Destroy;
mSmtp.Destroy;
end;end.
下面键值ProxyServer
如果设置了套接字形式为:ftp=192.168.1.102:8088;http=192.168.1.102:8088;https=192.168.1.102:8088;socks=192.168.1.102:2280
如果没设置为:
192.168.1.102:8088读取出来字符串后pos函数查是否有'socks='串,提取出来即可