<b>BCB6中Indy9发送邮件的例子</b>[VC/C++编程]
本文“<b>BCB6中Indy9发送邮件的例子</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
有两个控件:TIdMessage:IdMsgSend,TIdSMTP:SMTP
/发送邮件
//注:发送的SMTP属性通过SMTP_Setup函数设置了
//参数:in:cTo,收件人
// cCc 抄送
// cBcc 暗抄
// cSubject 主题
// cBody 内容
// cAttachList 发送的附件(以\n分割)
// OUT: Msg 返回错误信息
//返回值 0: 成功发送
// -1:失利,拜见Msg信息
// -2: 没有先设置SMTP发送属性
int __fastcall TM::SendMail(const char * cTo, const char * cCc, const char * cBcc,\
const char* cSubject, const char * cBody, const char* cAttachList,\
char * cMsg)
{
int iRet=0;
if(!SetupOk)
return -2;
IdMsgSend->Clear(); //排除,不然包含有上一条的信息
IdMsgSend->ContentType = ContentType;
IdMsgSend->From->Text = LocalMail;
if (ReturnReciept)
{//{We set the recipient to the From E-Mail address }
IdMsgSend->ReceiptRecipient->Text = IdMsgSend->From->Text;
}
else
{// {indicate that there is no receipt recipiant}
IdMsgSend->ReceiptRecipient->Text = "";
}
IdMsgSend->Recipients->EMailAddresses = cTo; //{ To: header }
IdMsgSend->Subject = cSubject; //{ Subject: header }
IdMsgSend->CCList->EMailAddresses = cCc;// {CC}
IdMsgSend->BccList->EMailAddresses = cBcc; //{BCC}
IdMsgSend->Priority = TIdMessagePriority(Priority); // { Message Priority }
IdMsgSend->Body->Text = String(cBody);
if(strlen(cAttachList))
{
TStringList * sl= new TStringList;
sl->Text=String(cAttachList);
for(int i=0;i<sl->Count;i++)
{
IdMsgSend->MessageParts->Add();
new TIdAttachment(IdMsgSend->MessageParts,sl->Strings[i]);
}
delete sl;
}
if(!SMTP->Connected())
{
try
{
SMTP->Connect();
}
catch(Exception &e)
{
strcpy(cMsg,"衔接SMTP服务器失利!错误信息:");
strcat(cMsg,e.Message.c_str());
iRet = -1;
return iRet;
}
}
if(SMTP->Connected())
{
try
{
SMTP->Send(IdMsgSend);
}
catch(Exception &e)
{
strcpy(cMsg,e.Message.c_str());
iRet = -1;
}
}
else
{
strcpy(cMsg,"衔接SMTP服务器失利!");
iRet = -1;
}
return iRet;
}
//设置发送的SMTP属性
//参数:in:cHost,SMTP服务器地址
// iPort, SMTP端口
// cLocalMail 发件人的邮箱
// iAuth 能否定证 0,不认证,1认证
// cUsername 认证用户名
// cPassword 认证密码
// OUT: 无
//返回值 0: 成功设置
// -1:失利,贫乏属性
int __fastcall TM::SMTP_Setup(const char * cHost, const int iPort, const char *cLocalMail,\
const int iAuth, const char * cUsername, const char *cPassword)
{
int iRet=0;
if(SMTP->Connected())
SMTP->Disconnect();
SMTP->Host = String(cHost);
SMTP->Port = iPort;
this->LocalMail = String(cLocalMail);
switch (iAuth)
{
// {authentication settings}
case 0:
SMTP->AuthenticationType = atNone;
break;
case 1:
SMTP->AuthenticationType = atLogin; //{Simple Login}
break;
};
SMTP->Username = cUsername;
SMTP->Password = cPassword;
SetupOk = true;
return iRet;
}
以上是“<b>BCB6中Indy9发送邮件的例子</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |