JMAIL中自带的VC++的例子怎么发不出邮件去,下面的代码在编译时有很多错误的,请高手能不能详细指点阿,有其他的源代码也可以的
UINT SendEmailThread(LPVOID pParam)
{
EmailContent *email=(EmailContent *)pParam;
CoInitialize(NULL);
{
//发送mail
try
{
jmail::IMessagePtr pMessage("JMail.Message");// 发件人邮箱
pMessage->From = email->sender;//(LPSTR)(LPCTSTR)msSend.lpszFrom;
// 发件人姓名
pMessage->FromName = email->sender;;//(LPSTR)(LPCTSTR)msSend.lpszFrom;// 添加收件人
//pMessage->AddRecipient((LPSTR)(LPCTSTR)msSend.lpszTo, (LPSTR)(LPCTSTR)msSend.lpszCc, "");
pMessage->AddRecipient(email->receiver, email->receiver, "");
// 优先级设置,1-5逐次降低, 3为中级
pMessage->Priority = 3;//msSend.nPriority;// 编码方式设置, 默认是iso-8859-1
pMessage->Charset = "GB2312";// 主题
pMessage->Subject = email->subject;//(LPSTR)(LPCTSTR)msSend.lpszSubject;// 正文
// _bstr_t bstrCID = pMessage->AddAttachment("D:\\logo.jpg", VARIANT_TRUE, "image/jpg"); // 返回content id
pMessage->Body = email->body;//msSend.lpszBody; 
// 添加HTML正文内容
//pMessage->HTMLBody = (LPSTR)(LPCTSTR)<A href="http://www.sohu.com/"target=_blank class=setwhite>;////msSend.lpszHTMLBody;
// 开始发送
pMessage->Send("", VARIANT_FALSE);pMessage.Release();}
catch (_com_error e)
{
CString strErr;
strErr.Format("错误信息:%s\r\n错误描述:%s", (LPCTSTR)e.ErrorMessage(), (LPCTSTR)e.Description());
TRACE(strErr);
}
}
CoUninitialize();
return 0;
}

解决方案 »

  1.   

    需要先import jmail.dll
    #import "F:\\work\\release\\jmail.dll"
    我写的这个代码是用在我的线程中发邮件的,里面用了我的一些结构,你可以这么写。#import "F:\\work\\release\\jmail.dll"
    CoInitialize(NULL);
    {
    //发送mail
    try
    {
    jmail::IMessagePtr pMessage("JMail.Message");// 发件人邮箱
    pMessage->From ="[email protected]"; 
    // 发件人姓名
    pMessage->FromName = "test";
    // 添加收件人
    pMessage->AddRecipient("[email protected]", "[email protected]", "");// 优先级设置,1-5逐次降低, 3为中级
    pMessage->Priority = 3;// 编码方式设置, 默认是iso-8859-1
    pMessage->Charset = "GB2312";// 主题
    pMessage->Subject = "test";// 正文
    pMessage->Body = "hello";
    // 添加HTML正文内容
    //pMessage->HTMLBody = "test";
    // 开始发送
    pMessage->Send("", VARIANT_FALSE);pMessage.Release();}
    catch (_com_error e)
    {
    CString strErr;
    strErr.Format("错误信息:%s\r\n错误描述:%s", (LPCTSTR)e.ErrorMessage(), (LPCTSTR)e.Description());
    TRACE(strErr);
    }
    }
    CoUninitialize();
      

  2.   

    我在MFC中,加入的上面的代码,并且也加了#import "F:\\work\\release\\jmail.dll"但是会出现很多没有定义的提示,请问该怎么改?
      

  3.   

    应该不会吧,首先确认你的路径没有错误,同时regsvr32 ..\jmail.dll
      

  4.   

    在发信时出现这个错误 Debug Assertion Failed!
    ......
    File:dumpout.cpp
    Line:52
      

  5.   

    我在Release下没有了,发的信还没受到,是不是因为服务器需要验证啊?
    如果是怎样添加密码验证呢?麻烦你了!!
      

  6.   

    不需要,jmail发信不需要填写smtp服务器,置为空,它会自动帮你找可用的smtp server
      

  7.   

    可是现在已经24个小时了还没有收到信啊?我是这样写的:
    ..........
    // 发件人邮箱
    pMessage->From ="[email protected]"; 
    // 发件人姓名
    pMessage->FromName = "software_5";
    // 添加收件人
    pMessage->AddRecipient("[email protected]", "[email protected]", "");
    .............
      

  8.   

    不会发的这么慢,我在我局域网测试,基本上立即就可以检查到了。你发送时catch到的错误是什么?另外检查你的网络环境
      

  9.   

    不是啊  信件可能没有发出去;我在MFC里用的是对话框模式,没有catch到什么错误,我加了一些显示语句,程序也运行到了最后,只是被突然断开;这是从金山毒霸的监控状态中发现的,我已经关闭了防火墙;我在学校里,用的网络是校园网;
      

  10.   

    用outlook这些客户端工具是否能正常发出邮件?
      

  11.   

    如何是在校园网中要通过代理才能访问外部网络,请问用jmail发email时如何设置代理服务器和端口啊
      

  12.   

    #import "jmail.dll" // 导入jmail.dll, 假如jmail.dll不在工程目录下,您需要写上完整路径
    (jmail要先自注册)
    void main()
    {
    CoInitialize(NULL);  // COM的初始化
    {
    // 创建SpeedMailer实例
    jmail::ISpeedMailerPtr pSpeedMailer("JMail.SpeedMailer");

    // 发送邮件
    pSpeedMailer->SendMail("[email protected]", // 发件人邮箱
    "[email protected]", // 收件人邮箱
    "主题:你好!", // 主题
    "正文:大家好才是真的好!", // 正文
    ""); // SMTP服务器
    }
    CoUninitialize();
    }
    //这是jmail最简单的使用方法(不需要设置代理和端口),如果无法收到,那就不是程序的问题,而是网络的问题。如果是这样,就要考虑用别的方式发邮件了。
      

  13.   

    用outlook这些客户端工具不能发出邮件,但是用带密码验证的可以发过去,例如QQ杀手6.8
    这个问题怎样解决?
    多谢!!!
    上面的代码我已试过,错误是“网络异常”
    如果是写带验证,不用JMAIL呢?
      

  14.   

    http://morningspace.51.net
    a mail class using stl.
      

  15.   

    Up to the moment,i am moved to tears by your response through the sereval days
    Your character 100 ,your response 100!!!