jmail::IMessagePtr pMessage("JMail.Message");

// 发件人邮箱
pMessage->From = "[email protected]";

// 发件人姓名
pMessage->FromName = "najiutan1990";

// 添加收件人1, 无收件人姓名与PGP KEY
pMessage->AddRecipient("ly_889999.com","","");

// 添加收件人2, 无PGP KEY
// pMessage->AddRecipient("[email protected]","收件人名字","");

// 添加收件人3,这里的PGP KEY只是作为示例,实际中需要用PGP软件生成
// pMessage->AddRecipient("[email protected]","收件人名字","R9Rb7decrQWINuce3uFc0xDG");

// 优先级设置,1-5逐次降低, 3为中级
pMessage->Priority = 3;

// 编码方式设置, 默认是iso-8859-1
pMessage->Charset = "GB2312";

// 主题
pMessage->Subject = "邮件主题";

// 正文
pMessage->Body = "你好\r\n";

// 如有必要,可以再添加一些正文
pMessage->AppendText("VC知识库www.VCKBASE.com欢迎您! 祝您身体健康!");

// 添加附件
// pMessage->AddAttachment("C:\\CONFIG.SYS", VARIANT_FALSE, "application/octet-stream");
// pMessage->AddAttachment("C:\\test.gif", VARIANT_TRUE, "image/gif");

// 开始发送
pMessage->Send("najiutan1990:[email protected]", VARIANT_FALSE);我在机子上试了一下没有用,当我按一下发送按钮的时候就出现Debug error提示说abnormal program termination
这段代码有错吗?要怎么改?
还有就是这个接口jmail::IMessagePtr ,我在网上下了一份阿江翻译的jmail pdf文档,里面根本就没有这个接口啊?

解决方案 »

  1.   

    自己单步调试看看哪一步出异常
    还有,没有抓_com_exception的代码?
      

  2.   

    楼主啊你应该发到JAVA版。把俺以前的代码发出来楼主你好好研究研究。package com.p.service;import java.util.Properties;import javax.mail.MessagingException;
    import javax.mail.internet.AddressException;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.mail.MailException;
    import org.springframework.mail.javamail.JavaMailSenderImpl;
    import org.springframework.mail.javamail.MimeMessageHelper;
    import org.springframework.stereotype.Service;import com.p.annotation.Cron;@Service
    public class JavaMailService extends BaseService {
    @Autowired
    ConfigService configService;
    private static String emailHost = null;
    private static String emailSender = null;
    private static String username = null;
    private static String password = null; @Override
    public void destroy() { } @Override
    public void init() {
    emailHost = configService.getConfig("email.host");
    emailSender = configService.getConfig("email.emailSender");
    username = configService.getConfig("email.emailSender.username");
    password = configService.getConfig("email.emailSender.password");
    } public void test() throws Exception {
    JavaMailService email = new JavaMailService();
    String subject = "奇趣奇趣";
    String content = "<html><head><META http-equiv=Content-Type content='text/html; charset=UTF-8'></HEAD><title>test</title></head><body>dear 测试 \n ";
    content += "<red>This is Text!</red> pic <img src='cid:a'></img> "
    + "hello<img src='cid:b'></img></body></html>";
    email.send(subject, content, "[email protected]");
    } int send(String subject, String content, String... emailTo) {
    try {
    JavaMailSenderImpl javaMail = new JavaMailSenderImpl();
    javaMail.setDefaultEncoding("UTF-8");
    javaMail.setHost(emailHost);
    javaMail.setUsername(username);
    javaMail.setPassword(password);
    Properties prop = new Properties();
    prop.setProperty("mail.smtp.auth", "true");
    javaMail.setJavaMailProperties(prop);
    MimeMessage mime = javaMail.createMimeMessage();
    MimeMessageHelper messageHelp = new MimeMessageHelper(mime, true, "UTF-8");
    messageHelp.setFrom(emailSender);
    InternetAddress[] address = new InternetAddress[emailTo.length];
    for (int i = 0; i < emailTo.length; i++) {
    address[i] = new InternetAddress(emailTo[i]);
    }
    messageHelp.setTo(address);
    messageHelp.setSubject(subject);
    // messageHelp
    messageHelp.setText(content, true);
    /*
     * messageHelp.addInline("a", new File("E:/kkk.jpg"));
     * messageHelp.addInline("b", new File("E:/oo.png")); File file=new
     * File("E:/aaaa.rar"); try {
     * messageHelp.addAttachment(MimeUtility.encodeWord(file.getName()),
     * file); } catch (UnsupportedEncodingException e) {
     * e.printStackTrace(); }
     */
    javaMail.send(mime);
    logger.info("------------ send mail success!");
    return 1;
    } catch (AddressException e) {
    logger.error("------------javamail error address! ", e);
    return -1;
    } catch (MailException e) {
    logger.error("------------javamail mail fail! ", e);
    return -2;
    } catch (MessagingException e) {
    logger.error("------------javamail message fail!", e);
    return -3;
    }
    } String sends(String subject, String content, String... emailTo) {
    try {
    JavaMailSenderImpl javaMail = new JavaMailSenderImpl();
    javaMail.setDefaultEncoding("UTF-8");
    javaMail.setHost(emailHost);
    javaMail.setUsername(username);
    javaMail.setPassword(password);
    Properties prop = new Properties();
    prop.setProperty("mail.smtp.auth", "true");
    javaMail.setJavaMailProperties(prop);
    MimeMessage mime = javaMail.createMimeMessage();
    MimeMessageHelper messageHelp = new MimeMessageHelper(mime, true, "UTF-8");
    messageHelp.setFrom(emailSender);
    InternetAddress[] address = new InternetAddress[emailTo.length];
    for (int i = 0; i < emailTo.length; i++) {
    address[i] = new InternetAddress(emailTo[i]);
    }
    messageHelp.setTo(address);
    messageHelp.setSubject(subject);
    // messageHelp
    messageHelp.setText(content, true);
    /*
     * messageHelp.addInline("a", new File("E:/kkk.jpg"));
     * messageHelp.addInline("b", new File("E:/oo.png")); File file=new
     * File("E:/aaaa.rar"); try {
     * messageHelp.addAttachment(MimeUtility.encodeWord(file.getName()),
     * file); } catch (UnsupportedEncodingException e) {
     * e.printStackTrace(); }
     */
    javaMail.send(mime);
    return "ok";
    } catch (AddressException e) {
    return "fail";
    } catch (MailException e) {
    return "fail";
    } catch (MessagingException e) {
    return "fail";
    }
    }}
      

  3.   

    咋要发到Java版呢,我这是在VC中弄
      

  4.   

    真晕死,我试了一下Jmail安装目录的那个C++写的例子,提示说灾难性错误,咋回事?
      

  5.   


    。。晕。。JMail真是越来越乱了呵呵
      

  6.   

    这段代码有错吗?
    #include "stdafx.h"
    #include <iostream.h>
    #import "jmail.dll" // The path to the jmail.dll file here!// The strings later used as parameters to JMail
    // And of course they should be edited before building this project. const char *sender = "[email protected]";                     // Edit this!!
    const char *recipient = "[email protected]";             // Edit this!!
    const char *subject = "Hello JMail!";
    const char *body = "This message was sent with JMail version 4.0\n"
       "using the JMailCppEx example!\n";
    const char *mailserver = "smtp.qq.com";               // Edit this!! int main(int argc, char* *argv)
    { CoInitialize(NULL); {
    try
    {
    // jmail::ISpeedMailerPtr is generated and declared by the #import directive. jmail::ISpeedMailerPtr spJMail("JMail.SpeedMailer");
    // Ok, send the mail.
    spJMail->SendMail( sender, recipient, subject, body, mailserver ); }
    catch( _com_error & E)
    {
    cerr
    << "Error: 0x" << hex << E.Error() << endl
    << E.ErrorMessage() << endl; } } CoUninitialize(); return 0;
    }
    结果去却提示灾难性故障,jmail我也安装了,而且也把那个jmail.dll文件复制到了工程下面