Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > BCB6中Indy9发送邮件的例子
【标  题】:BCB6中Indy9发送邮件的例子
【关键字】:C,BCB,BC,In,Indy,BCB6,Indy9
【来  源】:网络

BCB6中Indy9发送邮件的例子

Your Ad Here 有两个控件: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;
}

一段屏幕抓图超简版代码:【上一篇】
在C++Builder中编写发送图象文件程序:【下一篇】
【相关文章】
  • CPPWebBrowser的PostData
  • 用C++ Builderw做Ftp服务器程序
  • MSComm控件使用详解
  • TServerSocket和TClientSocket的使用
  • TCP上的NetBIOS配置参数
  • Winsock错误代码一览表
  • Winsock API 函数大全 3
  • 取得系统中网卡MAC地址的三种方法
  • win9x下自动启动程序的10种方法
  • Win9x下隐藏程序不出现在CTRL-ALT-DEL对话框中
  • 【随机文章】
  • 用VBS模拟二叉树,可以得到一个排序办法
  • 安全管理Linux的一些措施
  • Thinking In Java 笔记一
  • 实验十
  • Are you ready?
  • 人生有七苦
  • 制作动态url按钮
  • Remoting系列专题---构建Remoting“防火墙”
  • TCP/IP详解学习笔记(14)-TCP连接的未来和性能(未写完)
  • 浅谈gdb在漏洞发掘中的使用[转]
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.