Java SpringMail支持-无主题

Java SpringMail支持-无主题,java,spring,email,Java,Spring,Email,我已经更新了我的库,现在发送的电子邮件没有主题。我不知道这是在哪里发生的 邮件API为1.4.3,Spring为2.5.6。以及Spring集成邮件1.0.3.0版 <!-- Definitions for SMTP server --> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value

我已经更新了我的库,现在发送的电子邮件没有主题。我不知道这是在哪里发生的

邮件API为1.4.3,Spring为2.5.6。以及Spring集成邮件1.0.3.0版

<!-- Definitions for SMTP server -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="${mail.host}" />
    <property name="username" value="${mail.username}" />
    <property name="password" value="${mail.password}" />
</bean>

<bean id="adminMailTemplate" class="org.springframework.mail.SimpleMailMessage" >
    <property name="from" value="${mail.admin.from}" />
    <property name="to" value="${mail.admin.to}" />
    <property name="cc">
        <list>
            <value>${mail.admin.cc1}</value>
        </list>
    </property>
</bean>

<!-- Mail service definition -->
<bean id="mailService" class="net.bbb.core.service.impl.MailServiceImpl">
    <property name="sender" ref="mailSender"/>
    <property name="mail" ref="adminMailTemplate"/>
</bean>

以前一切都正常,我想知道是否与新库有冲突。

我认为这与将singleton
SimpleEmailMessage
注入bean的方式有关。这不是线程安全的,因为对
sendMail
方法的每次调用都将使用相同的底层
simpleEmailMessage
对象。很可能新库中的一些实现更改现在意味着这一点被打破了

SimpleEmailMessage
有一个复制构造函数,因此您应该这样做:

<bean id="mailService" class="net.bbb.core.service.impl.MailServiceImpl">
    <property name="sender" ref="mailSender"/>
    <property name="template" ref="adminMailTemplate"/>
</bean>

最后,我有时间解决这个问题


在pom.xml中,我添加了java邮件依赖项,并删除了apache axis transport http依赖项中geronimo javamail的排除项。

@Trick:您提供给我们的信息中没有任何其他内容会导致您的问题。这一定是与库有关。我会还原一切。@诀窍:不要还原一切。一次只恢复一件事,直到你确定是哪一个具体的改变打破了它。科学方法等等。是的,当然:)这在目前并不重要,所以我会在有时间的时候离开这个。我会报告发生了什么。谢谢你发现问题了吗?我也面临着这个问题,所以如果你能继续回答我,我会很高兴的:)。目前没有必要,但我会努力找到它,直到本周末。我在这里找到了解决方案:(不包括作为依赖项拉进来的某些罐子)谢谢,这实际上也解决了我的问题!org.apache.axis2 axis2 xmlbeans 1.4.1 org.apache.geronimo.specs geronimo-javamail_1.4_规范
<bean id="mailService" class="net.bbb.core.service.impl.MailServiceImpl">
    <property name="sender" ref="mailSender"/>
    <property name="template" ref="adminMailTemplate"/>
</bean>
private SimpleMailMessage template;

public void setTemplate(SimpleMailMessage template) {
   this.template = template;
}

public void sendMail() {
    SimpleMailMessage message = new SimpleMailMessage(template);
    message.setSubject("Subject");
    message.setText("msg body");          

    try {
        getSender().send(message);
    } catch (MailException e) {
        log.error("Error sending mail!",e);
    }
}