关于发送邮件

MAPI的方法: 但是会弹出提示框

 

void CSendEMailDlg::OnOK()
{

    result = LoadLibrary("mapi32.dll"); //加载动态库
   
    //获取函数指针
    (FARPROC&)lpfnMAPILogon = GetProcAddress(result,"MAPILogon");
    (FARPROC&)lpfnMAPISendMail = GetProcAddress(result,"MAPISendMail");
    (FARPROC&)lpfnMAPIFreeBuffer= GetProcAddress(result,"MAPIFreeBuffer");
    (FARPROC&)lpfnMAPILogoff= GetProcAddress(result,"MAPILogoff");

    unsigned long a;
    lpfnMAPILogon(0,NULL,NULL,0,0,&a); //开始一个会话

    char* pcontext; //记录邮件正文
    CString str;
    m_content.GetWindowText(str);
    pcontext = str.GetBuffer(0);

    ULONG lresult ;

    MapiMessage* m_messageInfo; //定义一个信息结构指针
    m_messageInfo = new MapiMessage;
    memset(m_messageInfo,0,sizeof(MapiMessage));//初始化m_messageInfo


    CTime time = CTime::GetCurrentTime();//获取当前时间
    CString ctime = time.Format("%y//%m//%d//%H");
    char date[50];
    strcpy(date,ctime);

    CString subject ;
    m_subject.GetWindowText(subject); //获取主题


    CString receiver,temp;
    m_ReceiverAddr.GetWindowText(temp);//获取收件人信息

    receiver = temp.Left(temp.Find('@'));//获取用户账户

    char addr1[100]; //记录用户账户
    char addr2[100]; //记录SMTP服务器
    strcpy(addr1,receiver);

    receiver = "SMTP:"+temp;
    strcpy(addr2,receiver);
   
    MapiRecipDesc m_receiver = {0,MAPI_TO,addr1 ,addr2,0,NULL}; //定义接收者信息

    m_messageInfo->lpszNoteText = pcontext; //设置邮件正文
    m_messageInfo->ulReserved = 0; //保留,必须为0
    m_messageInfo->lpszSubject = subject.GetBuffer(0); //设置主题
    m_messageInfo->lpszDateReceived = date; //设置邮件发送时间
    m_messageInfo->lpszConversationID = NULL; //邮件所属线程一个字符串指针
    m_messageInfo->flFlags = MAPI_SENT;//邮件状态标记
    m_messageInfo->lpOriginator = NULL; //发送者信息
    m_messageInfo->nRecipCount = 1;//接收者人数
    m_messageInfo->nFileCount = 0; //附件数
    m_messageInfo->lpRecips = &m_receiver; //设置接收者信息
    m_messageInfo->lpszMessageType = NULL;     //邮件类型


    lresult =  lpfnMAPISendMail(a,0,m_messageInfo,MAPI_DIALOG ,0); //发送邮件

    if (lresult != SUCCESS_SUCCESS)
    {
        MessageBox("操作失败.","提示",64);
    }
    else
    {
        MessageBox("邮件发送成功.","提示",64);
   
        m_content.Clear();
    }
    delete m_messageInfo;
    lpfnMAPIFreeBuffer(m_messageInfo);
    lpfnMAPILogoff(a,0,0,0);
    FreeLibrary(result);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值