当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<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++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .