各位大虾,请帮忙,小弟碰到了一个问题,现在比较急,明天就要交任务,问题如下:
把一些数据怎样发送到邮件里,他知告诉我邮件地址(IP)和邮件的用户,我什么实现这些功能,
我用到以下组件是在用Delphi7上控件 TidMessage,TidSMTP来发送电子邮件,不知道什么弄,如果那位大虾以前做过这样的例子请帮发一个例子给小弟看看,不知道从那里下手,谢谢大虾指点!!
把一些数据怎样发送到邮件里,他知告诉我邮件地址(IP)和邮件的用户,我什么实现这些功能,
我用到以下组件是在用Delphi7上控件 TidMessage,TidSMTP来发送电子邮件,不知道什么弄,如果那位大虾以前做过这样的例子请帮发一个例子给小弟看看,不知道从那里下手,谢谢大虾指点!!
ShellExecute(0,nil,'mailto:[email protected];subject:tt;body:haha','','',SW_NORMAL);
总是主题及内容没有东西,郁闷啊,
路过顺便帮你顶了
1>API函数ShellExecute(Handle, 'open', 'mailto:[email protected]' +
'?cc=two@site' +
'&bcc=three@site' +
'&subject=Multiline%20Example'+
'&body=First line.%0ASecond line.%0AThird line.'+
'&file=''D:\da.rar''',
nil, nil, SW_NORMAL);2>VCL
procedure TfrmEmail.SendEmail_I;
var i : integer;
begin
if latt.Count > 0 then
begin
WinExec(PChar(NetUseConn),SW_HIDE);
Sleep(1000);
end;
with IdMessage1 do
begin
Clear;
From.Name := LoginInfo.LoginName;
From.Address := edt_From.Text;
for I := 0 to lv_Rec.Items.Count -1 do
begin
Recipients.Add;
Recipients.Items[i].Name := lv_Rec.Items[i].Caption;
Recipients.Items[i].Address := lv_Rec.Items[i].SubItems[1];
end;
if edt_Cc.Text <> EmptyStr then
begin
CCList.Add;
CCList.EMailAddresses := edt_Cc.Text;
end;
if lb_Att.Items.Count > 0 then
for i := 0 to lb_Att.Items.Count - 1 do
begin
if latt.Count - 1 >= i then
TIdAttachment.Create(IdMessage1.MessageParts,latt[i])
else
TIdAttachment.Create(IdMessage1.MessageParts,lb_Att.Items[i]);
end;
Subject := edt_Sub.Text;
Body := me_Body.Lines;
if not AnsiContainsText(Recipients.EMailAddresses,'@mail.hipfung.com.cn') then
begin
MessageDlg('无法发送邮件.'+#13#10+'必须指定内部邮件的收件人.',mtWarning,[mbOK],0);
lv_Rec.SetFocus;
Exit;
end else if Subject = EmptyStr then
begin
MessageDlg('无法发送邮件.'+#13#10+'必须填写邮件的主题。',mtWarning,[mbOK],0);
edt_Sub.SetFocus;
Exit;
end else if Body.Text = EmptyStr then
begin
MessageDlg('无法发送邮件.'+#13#10+'必须填写邮件的内容。',mtWarning,[mbOK],0);
me_Body.SetFocus;
Exit;
end;
end;
with IdSMTP1 do
begin
Host := '10.1.104.3';
Port := 25;
AuthenticationType := atNone;
try
Screen.Cursor := crHourGlass;
Connect(1000);
Send(IdMessage1);
Screen.Cursor := crDefault;
ShowMessage('内部邮件发送成功!');
SaveEmail(IdMessage1);
finally
Screen.Cursor := crDefault;
Disconnect;
end;
end;
end;
有些服务器需要登陆验证,还有一个问题就是delphi不支持Unicode编码 发出去的邮件有可能乱码,也不知道如何解决:procedure Tfrm_install_data.SpeedButton2Click(Sender: TObject);
begin
AboutBox.ShowModal;
end;procedure Tfrm_install_data.Send_Mail();
var
strUserName, strPassword: String;
BodyText:string;
begin
try
NMSmtp1.Host:='SMTP.163.com';//Edit3.Text; //SMTP服务器地址
//NMSMTP1.Port:=25;
//NMSmtp1.UserID:='lxj_com';//Edit4.Text; //你在对应服务器上的注册用户名 strUserName := EncodeString('lxj_com');//CoolSlob是服务器的帐号
strPassword := EncodeString('lxj_com163.com');//Password是密码 {进行认证,输入编码后的用户名、密码}
NMSmtp1.UserID:='lxj_com'; Nmsmtp1.ReportLevel :=1; Nmsmtp1.TimeOut :=10000;
{断开原来的连接,保证TForm1.NMSMTP1Connect中服务器认证的执行}
if NMSMTP1.Connected then
begin
NMSMTP1.Disconnect;
end; NMSmtp1.Connect; //与服务器建立连接 {进行认证,输入编码后的用户名、密码}
nmsmtp1.Transaction('EHLO') ;
nmsmtp1.Transaction('AUTH LOGIN');//返回值是334表示通过,可以继续下面的
nmsmtp1.Transaction(strUserName);
nmsmtp1.Transaction(strPassword);
{nmsmtp1.Transaction('auth login');
nmsmtp1.Transaction('lxj_com');
nmsmtp1.Transaction('lxj_com163.com'); } NMSmtp1.PostMessage.FromAddress:='[email protected]';//Edit5.Text; //发件人的邮件地址 {邮件主题}
NMSmtp1.PostMessage.Subject:='客户:'+Edit3.text+' 安装注册资料';//Edit2.Text; NMSmtp1.PostMessage.ToAddress.Add('[email protected]'{Edit1.Text}); //收件人的邮件地址 //NMSmtp1.PostMessage.Attachments.AddStrings(ListBox1.Items); //附件 //NMSmtp1.PostMessage.Body.Assign(Memo1.Lines); //邮件的正文 {邮件的正文}
//("=?GB2312?B?"+enc.encode(subject.getBytes())+"?=");
BodyText:='Customer Name : '+Edit3.Text+chr(13)+
'Tel : '+Edit4.Text+chr(13)+
'Address : '+Edit5.Text+chr(13)+
'WEB : '+Edit6.Text;
//BodyText:='=?GB2312?B?'+BodyText+'?='; //StringToWideChar :=
//StringToWideChar(PWideChar(BodyText),PWideChar(bodyText),Length(BodyText));
NMSmtp1.PostMessage.Body.Text:=BodyText;
//NMSmtp1.PostMessage.Body.Add (BodyText); NMSmtp1.SendMail; //发送邮件 NMSmtp1.Disconnect; //断开连接 except
//ShowMessage('发送失败!');
end; //ShowMessage('发送完毕!'); //发送完时显示提示信息
end;
附件如何通过参数传送!!!???
file参数不对呀