Java SpringMail支持-无主题
我已经更新了我的库,现在发送的电子邮件没有主题。我不知道这是在哪里发生的 邮件API为1.4.3,Spring为2.5.6。以及Spring集成邮件1.0.3.0版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
<!-- 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);
}
}