邮件的接收和发送

pingguokaimen 2007-03-23 03:53:12
各位,怎么才能在bcb中实现邮件的接收和发送啊,没一点头绪!!!
...全文
285 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pingguokaimen 2007-03-24
  • 打赏
  • 举报
回复
host我知道是主机地址啊,是谁的主机地址?如果我是163的邮箱该设置成什么啊?
kimryo 2007-03-24
  • 打赏
  • 举报
回复
host:主机地址,如pop3.netease.com
port:端口,pop3,smtp默认分别为110和161
ReportLevel:输出报告等级
TimeOut:连接超时时间
pingguokaimen 2007-03-24
  • 打赏
  • 举报
回复
还有啊,TNMSMTP和TNMPOP3的host,port,ReportLevel ,TimeOut分别代表什么意思,该怎么设置啊?
pingguokaimen 2007-03-24
  • 打赏
  • 举报
回复
huzhangyou(信仰(http://www.libing.net.cn)),我发过邮件给你了,能把源码发到我邮箱里吗?还有,问个问题:indy是什么啊?呵呵,是个刚出道的小菜鸟……
tuhuo 2007-03-23
  • 打赏
  • 举报
回复
BCB6.0自带了一个POP3的Demo,不过只有接收,可以做个参考,好像在\Example\NetFast目录下
huzhangyou 2007-03-23
  • 打赏
  • 举报
回复
for(int i = 0; i < lb_MailList->Items->Count ; i++){
new SendMailThread(s_EmailFrom,frm_Mail->suie_MailTopic->Text,frm_Mail->suim_TextContent->Lines,lb_MailList->Items->Strings[i],frm_Mail->s_AttachMentFileName1,frm_Mail->s_AttachMentFileName2,"","",s_SMTPServer,s_User,s_Pass,false);
}
ShowMessage("执行完毕!");



/////////////////////////////////////////

//
huzhangyou 2007-03-23
  • 打赏
  • 举报
回复

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "u_SendMailThread.h"
////////////////////////////
//
/////////////////////////////
#include "u_SmtpSet.h"

#include "u_Main.h"

#include "stdio.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------

// Important: Methods and properties of objects in VCL can only be
// used in a method called using Synchronize, for example:
//
// Synchronize(UpdateCaption);
//
// where UpdateCaption could look like:
//
// void __fastcall SendMailThread::UpdateCaption()
// {
// Form1->Caption = "Updated in a thread";
// }
//---------------------------------------------------------------------------

__fastcall SendMailThread::SendMailThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
}
//---------------------------------------------------------------------------
void __fastcall SendMailThread::Execute()
{
SendMail();
}
//---------------------------------------------------------------------------


void __fastcall SendMailThread::SendMail()
{
if(idSmtp->Connected()){
try{
try{
idSmtp->Send(idMess);
//ShowMessage("发送成功");
FILE * f = fopen((ExtractFilePath(Application->ExeName) +"\\本次成功日志.txt").c_str(),"a+");
String SuccessEmail = s_MailSend+s_MailCopy+s_MailHide;
fwrite(SuccessEmail.c_str(),SuccessEmail.Length(),1,f);
fwrite("\n",1,1,f);
fclose(f);
//ShowMessage("发送成功,请到文件目录下察看本次成功日志.txt");
}
catch(...){
//ShowMessage("发送失败");
FILE * f = fopen((ExtractFilePath(Application->ExeName) +"\\本次失败日志.txt").c_str(),"a+");
String SuccessEmail = s_MailSend+s_MailCopy+s_MailHide;
fwrite(SuccessEmail.c_str(),SuccessEmail.Length(),1,f);
fwrite("\n",1,1,f);
fclose(f);
//ShowMessage("发送失败,请到文件目录下察看本次失败日志.txt");
}


}
__finally{
//idSmtp->DisConnect();
idSmtp->Disconnect();
}
}
else{
try{
try{
idSmtp->Connect();
idSmtp->Send(idMess);
//ShowMessage("发送成功");
FILE * f = fopen((ExtractFilePath(Application->ExeName) +"\\本次成功日志.txt").c_str(),"a+");
String SuccessEmail = s_MailSend+s_MailCopy+s_MailHide;
fwrite(SuccessEmail.c_str(),SuccessEmail.Length(),1,f);
fwrite("\n",1,1,f);
fclose(f);
//ShowMessage("发送成功,请到文件目录下察看本次成功日志.txt");
}
catch(...){
FILE * f = fopen((ExtractFilePath(Application->ExeName) +"\\本次失败日志.txt").c_str(),"a+");
String SuccessEmail = s_MailSend+s_MailCopy+s_MailHide;
fwrite(SuccessEmail.c_str(),SuccessEmail.Length(),1,f);
fwrite("\n",1,1,f);
fclose(f);
//ShowMessage("发送失败,请到文件目录下察看本次失败日志.txt");
}


}
__finally{
idSmtp->Disconnect();
}
}

}

__fastcall SendMailThread::SendMailThread(const String& _FromMail,const String& _MailSubject,TStrings * _s,const String& _SendDestMail,const String& _Attach1,const String& _Attach2,const String& _HideSend,const String& _CopySend,const String& _SmtpServer,const String& _User,const String& _Pass,bool CreateSuspended)
: TThread(CreateSuspended)
{
idSmtp = new TIdSMTP(0);
idMess = new TIdMessage(0);
//SMTP 服务器设置
idSmtp->UserId = _User;
idSmtp->Password = _Pass;
idSmtp->Host = _SmtpServer;
idSmtp->AuthenticationType = atLogin;
///////////////////////////////
//Message 设置
//s_SendDestMail = _DestMail;
idMess->Clear();
idMess->From->Text = _FromMail;
idMess->Recipients->EMailAddresses = _SendDestMail;
idMess->Subject = _MailSubject;
idMess->Body->Assign(_s);
idMess->BccList->EMailAddresses = _CopySend;
idMess->Priority = TIdMessagePriority(2);
idMess->CCList->EMailAddresses = _HideSend;
idMess->From->Address = _FromMail;
s_MailSend = _SendDestMail;
s_MailCopy = _CopySend ;
s_MailHide = _HideSend ;
if(_Attach1 != ""){
idMess->MessageParts->Add();
new TIdAttachment(idMess->MessageParts,_Attach1);
}
if(_Attach2 != ""){
idMess->MessageParts->Add();
new TIdAttachment(idMess->MessageParts,_Attach2);
}
this->FreeOnTerminate = true;
}

__fastcall SendMailThread::~SendMailThread()
{
delete idSmtp;
delete idMess;
}

huzhangyou 2007-03-23
  • 打赏
  • 举报
回复
http://cnc.libing.net.cn/read.php/497.htm
huzhangyou 2007-03-23
  • 打赏
  • 举报
回复
http://proj.libing.net.cn/read.php?497
kimryo 2007-03-23
  • 打赏
  • 举报
回复
TNMPop和TNMSmtp,你要用原始socket也行~

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧