连接到outlook.com smtp服务器时出现邮件错误



我试图通过我的outlook.com帐户发送电子邮件(映射到特定的域,我的电子邮件id将像emailId@mydomain.com

我得到以下异常:

2014-03-14 00:27:55,314 [pool-1-thread-1] ERRORorg.springframework.scheduling.support.MethodInvokingRunnable -在目标类上调用方法'sendMail'com.sixthsense.lws.scheduler。TestMailSenderJob]失败org.springframework.mail.MailSendException:失败的消息:5.5.4邮件无效地址;嵌套异常是:5.5.4邮件无效地址;消息异常详细信息(1)有:5.5.4邮件无效地址;嵌套异常是:5.5.4邮件无效地址

在com.sun.mail.smtp.SMTPTransport.issueSendCommand (SMTPTransport.java: 2108)com.sun.mail.smtp.SMTPTransport.mailFrom (SMTPTransport.java: 1609)在com.sun.mail.smtp.SMTPTransport.sendMessage (SMTPTransport.java: 1117)在org.springframework.mail.javamail.JavaMailSenderImpl.doSend (JavaMailSenderImpl.java: 416)在org.springframework.mail.javamail.JavaMailSenderImpl.send (JavaMailSenderImpl.java: 306)在org.springframework.mail.javamail.JavaMailSenderImpl.send (JavaMailSenderImpl.java: 296)在com.sixthsense.lws.scheduler.TestMailSenderJob.sendMail (TestMailSenderJob.java: 34)在sun.reflect.NativeMethodAccessorImpl。invoke0(本机方法)atsun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java: 57)在sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java: 43)java.lang.reflect.Method.invoke(Method.java:601org.springframework.util.MethodInvoker.invoke (MethodInvoker.java: 273)在org.springframework.scheduling.support.MethodInvokingRunnable.run (MethodInvokingRunnable.java: 65)在org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run (DelegatingErrorHandlingRunnable.java: 51)在java.util.concurrent.Executors RunnableAdapter.call美元(Executors.java: 471)在java.util.concurrent.FutureTask Sync.innerRunAndReset美元(FutureTask.java: 351)java.util.concurrent.FutureTask.runAndReset (FutureTask.java: 178)在java.util.concurrent.ScheduledThreadPoolExecutor ScheduledFutureTask.access 301美元(ScheduledThreadPoolExecutor.java: 178)在java.util.concurrent.ScheduledThreadPoolExecutor ScheduledFutureTask.run美元(ScheduledThreadPoolExecutor.java: 293)在java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java: 1110)在java.util.concurrent.ThreadPoolExecutor Worker.run美元(ThreadPoolExecutor.java: 603)在java.lang.Thread.run(Thread.java:722)5.5.4邮件无效地址

com.sun.mail.smtp.SMTPTransport.mailFrom (SMTPTransport.java: 1616)…20

我的弹簧配置如下

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="smtp-mail.outlook.com" />
        <property name="port" value="587" />
         <property name="username" value="userid@mydomian.com" />
        <property name="password" value="password" />
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.starttls.enable">true</prop>
            </props>
        </property>
    </bean>

下面的代码发送电子邮件

@Service
public class TestMailSenderJob {
    @Autowired
    JavaMailSender mailSender;
    public JavaMailSender getMailSender() {
        return mailSender;
    }
    public void setMailSender(JavaMailSender mailSender) {
        this.mailSender = mailSender;
    }
    @Scheduled(fixedDelay=5000)
    public void sendMail()
    {
        System.out.println("############invoked sendMail");
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo("to@mailId.com");
        message.setSubject("Test mail "+new Date().toString());
        message.setText("test body");
        getMailSender().send(message);
        System.out.println("######### email send");
    }
}

我使用oracle提供的jar电子邮件版本javamail-1.4.7。编辑:我可以通过outlook web界面在我的outlook帐户(用于程序中的smtp)中发送接收电子邮件。

最终修复,添加from in message

 message.setFrom("from@mailId.com");

我在堆栈跟踪的许多地方看到:"无效的电子邮件地址"。请在您的代码中检查。

另一件事,为了安全起见,请使用javax.mail-1.4.7从maven的repo

相关内容

最新更新