Swaks(Swiss Army Knife for SMTP)可以发送,但Spring Java无法发送邮件

时间:2016-02-18 14:01:21

标签: spring javamail ubuntu-server

我正在Spring中开发一个服务,当我从我的开发机器运行这个相同的应用程序时,我可以发送电子邮件,但是当我将它部署到服务器时它不起作用。 我使用Swaks从服务器检查它也可以从命令行工作,但它不能从Spring工作。 这是Spring配置:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="my-domain.tld"/>
    <property name="port" value="587"/>
    <property name="username" value="myemail@my-domain.tld"/>
    <property name="password" value="mypassword"/>
    <property name="defaultEncoding" value="UTF-8"/>
    <property name="javaMailProperties">
        <props>
            <prop key="mail.transport.protocol">smtp</prop>
            <prop key="mail.smtp.auth">true</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.debug">true</prop>
        </props>
    </property>
</bean>

它在此行之后停止(来自日志文件)

STARTTLS
220 2.0.0 Ready to start TLS

以下是发送电子邮件的代码

@Component
public class EmailProvider {

@Autowired
private JavaMailSender mailSender;

@Async
public void sendEmail(final String to, final String subject, final String body, final String cc, final String bcc, final boolean html) {
    if (StringUtils.isEmpty(to) || StringUtils.isEmpty(subject) || StringUtils.isEmpty(body)) {
        return;
    }

    MimeMessagePreparator message = new MimeMessagePreparator() {

        @Override
        public void prepare(MimeMessage mmsg) throws Exception {
            MimeMessageHelper mm = new MimeMessageHelper(mmsg);
            mm.setTo(new InternetAddress(to));
            mm.setSubject(subject);
            mm.setFrom("from@my-domain.tld");
            if (StringUtils.isNotEmpty(cc)) {
                mm.setCc(cc);
            }
            if (StringUtils.isNotEmpty(bcc)) {
                mm.setBcc(bcc);
            }
            mm.setText(body, html);
        }
    };
    mailSender.send(message);
}
}

提前致谢。

0 个答案:

没有答案