我正试图通过我的outlook.com帐户发送电子邮件(映射到特定的域,我的电子邮件id将类似于emailId@mydomain.com )。
我得到了以下例外。
2014-03-14 00:27:55,314池-1-线程-1错误org.springframework.scheduling.support.MethodInvokingRunnable -对目标类调用方法'sendMail‘com.sixthsense.lws.scheduler.TestMailSenderJob Failed org.springframework.mail.MailSendException:失败消息: com.sun.mail.smtp.SMTPSendFailedException: 501 5.5.4无效电子邮件地址;嵌套例外是: com.sun.mail.smtp.SMTPSenderFailedException: 501 5.5.4无效电子邮件地址;邮件异常详细信息(1)是:失败消息1: com.sun.mail.smtp.SMTPSendFailedException: 501 5.5.4无效电子邮件地址;嵌套异常是: com.sun.mail.smtp.SMTPSenderFailedException: 501 5.5.4无效电子邮件地址 在com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2108) at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1609) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1117) at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:416) at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:306) at org.springframework.mail.javamail.JavaMailSenderImplcom.sixthsense.lws.scheduler.TestMailSenderJob.sendMail(TestMailSenderJob.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native .send(JavaMailSenderImpl.java:296)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273)在org.springframework.scheduling.support.MethodInvokingRunnable.run(MethodInvokingRunnable.java:65) at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:51) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:( 178)在java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722)引起的: com.sun.mail.smtp.SMTPSenderFailedException: 501 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提供的jars作为电子邮件版本javamail-1.4.7。编辑:我能够发送电子邮件在我的outlook帐户(在程序中用于smtp )通过outlook web界面。
发布于 2014-03-14 08:41:25
修正了消息中添加的
message.setFrom("from@mailId.com");发布于 2014-03-13 19:31:18
我在许多地方读到了这样的堆栈跟踪:“无效的电子邮件地址”。请在你的密码里检查一下。
另外,为了安全起见,请使用maven repo中的javax.mail-1.4.7。
https://stackoverflow.com/questions/22388501
复制相似问题