各位大虾,请帮忙,小弟碰到了一个问题,现在比较急,明天就要交任务,问题如下:
把一些数据怎样发送到邮件里,他知告诉我邮件地址(IP)和邮件的用户,我什么实现这些功能,
我用到以下组件是在用Delphi7上控件 TidMessage,TidSMTP来发送电子邮件,不知道什么弄,如果那位大虾以前做过这样的例子请帮发一个例子给小弟看看,不知道从那里下手,谢谢大虾指点!!

解决方案 »

  1.   

    DELPHI中应该有这方面的例子,自己找找看吧,我还不知道如何发邮件呢:
    ShellExecute(0,nil,'mailto:[email protected];subject:tt;body:haha','','',SW_NORMAL);
    总是主题及内容没有东西,郁闷啊,
    路过顺便帮你顶了
      

  2.   

    delphi6/demo/fastnet/smtp中的例子你看看吧
      

  3.   

    (本人项目中用的,参考一下就明白啦)
    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;
      

  4.   


      有些服务器需要登陆验证,还有一个问题就是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;
      

  5.   

      NMSmtp1 控件,delphi自带。
      

  6.   

    lxj_com2006(小帅) 
    附件如何通过参数传送!!!???
    file参数不对呀