JavaMail - 主题和收件人字段在电子邮件中为空

时间:2011-10-14 17:09:30

标签: java javamail

我刚开始使用JavaMail,我很难让电子邮件显示一些东西。然而,当主题出现时,会发送和接收消息,并且:行为空。

这是我正在尝试发送电子邮件的功能。我没有配置任何属性,所以一切都应该是默认的。

public void sendEmail(String[] ToEmailAddr, String Subject, String Body){

  Session session = Session.getDefaultInstance( fMailServerConfig, null );
  MimeMessage message = new MimeMessage( session );
  try {
    for (int i=0;i<ToEmailAddr.length;i++) {
      message.addRecipient(Message.RecipientType.TO, new InternetAddress(ToEmailAddr[i]));
    }
    message.setSubject( Subject );
    message.setText( Body );
    Transport.send( message );
  }
  catch (MessagingException ex){
    logger.error("Cannot send email. " + ex);
  }

}

如何让收件人查看收件人列表和主题行?

2 个答案:

答案 0 :(得分:6)

原来包装中存在冲突。 Tomcat自动在Web项目的Maven构建中包含自己的JavaMail包,这在我从标准Ja​​vaMail导入时导致了问题。

在项目的pom.xml文件中,我不得不像这样排除geronimo-javamail:

    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-xmlbeans</artifactId>
        <version>1.4.1</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-javamail_1.4_spec</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

答案 1 :(得分:0)

这发生了,因为Axis2在其lib里面有geronimo-javamail_1.4_spec-1.2.jar文件,里面有javax.mail包,一个非常简单的解决方案是打开jar文件并删除里面的包geronimo jar文件,并将oracle-sun下载的lib中的javax.mail包添加到应用程序的类路径