博客
关于我
501 5.1.7 Invalid address
阅读量:296 次
发布时间:2019-03-03

本文共 5836 字,大约阅读时间需要 19 分钟。

邮箱地址填写有误,invalid address不正当地址

应该是mail.host有问题,检查下

 

使用java通过Exchange服务器发邮件时,在内网可以正常发送,但是不能发往互联网邮箱,错误代码如下:

严重: Servlet.service() for servlet jspthrew exceptioncom.sun.mail.smtp.SMTPSendFailedException: 501 5.1.7 Invalid address       atcom.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1333)       at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:906)       atcom.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:535)       attest.jmail.ExchangeMail.send(ExchangeMail.java:72)       atorg.apache.jsp.index_jsp._jspService(index_jsp.java:67)       atorg.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)       atjavax.servlet.http.HttpServlet.service(HttpServlet.java:820)       atorg.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)       atorg.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)       atorg.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)       atjavax.servlet.http.HttpServlet.service(HttpServlet.java:820)       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)       atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)       atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)       atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)       atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)       atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)       atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)       atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)       atorg.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)       atorg.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)       at java.lang.Thread.run(Thread.java:619)

程序代码如下:
 

public void addMail() throws AddressException, MessagingException{              Properties props = System.getProperties();              props.put("mail.smtp.host", "10.2.32.145");              props.put("mail.transport.protocol", "smtp");          props.put("mail.smtp.auth", "true");            Email_AutherticatorBean auth = new Email_AutherticatorBean("zhq.hao@cbhb.com.cn","Password02!");              for(int i=0;i<1;i++){                      Session mailSession = Session.getInstance(props, auth);                      Message msg =  new MimeMessage(mailSession);                      //发件人邮箱                      msg.setFrom(new InternetAddress("han.huang@cbhb.com.cn"));                      //收件人邮箱地址                      InternetAddress[] address = null;                      address = InternetAddress.parse("test_bohai@163.com",false);                      msg.setRecipients( Message.RecipientType.TO, address);                      String temp = "内容内容";                      msg.setSubject("主题haha"+(i+1));                                                    msg.setSentDate(newDate());                                                msg.setText(temp);                                                    //                     Transport.send(msg);                      SMTPTransport t = (SMTPTransport) mailSession.getTransport("smtp");                      try {                              if (true)                                      t.connect("10.2.32.145", "cbhb/zhq.hao","Password02!");                              else                                      t.connect();                              t.sendMessage(msg, msg.getAllRecipients());                      } finally {                              t.close();                      }              }                 }

经过分析后,发现代码需要简单修改,修改后如下:

DEBUG: setDebug: JavaMail version 1.3.1DEBUG: getProvider() returningjavax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,SunMicrosystems, Inc] DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: useEhlotrue, useAuth true DEBUG SMTP: trying to connect to host "10.2.32.145",port 587220 BHDCPEXGAP03.cbhb.root.cbhbank.netMicrosoft ESMTP MAIL Service ready at Mon, 25 Nov 2013 17:10:15 +0800 DEBUGSMTP: connected to host "10.2.32.145", port: 587EHLO cbhb-4bcb3aa917250-BHDCPEXGAP03.cbhb.root.cbhbank.netHello [10.16.73.99] 250-SIZE 10485760 250-PIPELINING 250-DSN250-ENHANCEDSTATUSCODES 250-AUTH GSSAPI NTLM LOGIN 250-8BITMIME 250-BINARYMIME250 CHUNKINGDEBUG SMTP: Found extension"SIZE", arg "10485760"DEBUG SMTP: Found extension"PIPELINING", arg ""DEBUG SMTP: Found extension "DSN",arg ""DEBUG SMTP: Found extension"ENHANCEDSTATUSCODES", arg ""DEBUG SMTP: Found extension"AUTH", arg "GSSAPI NTLM LOGIN"DEBUG SMTP: Found extension"8BITMIME", arg ""DEBUG SMTP: Found extension"BINARYMIME", arg ""DEBUG SMTP: Found extension "CHUNKING",arg ""DEBUG SMTP: Attempt to authenticateAUTH LOGIN334 VXNlcm5hbWU6aGFuLmh1YW5n334 UGFzc3dvcmQ6UGFzc3dvcmQwMyE=235 2.7.0 Authentication successfulDEBUG SMTP: use8bit falseMAIL FROM:
250 2.1.0 Sender OKRCPT TO:
250 2.1.5 Recipient OKDEBUG SMTP: Verified AddressesDEBUG SMTP:eidolond@gmail.comDATA354 Start mail input; end with.Message-ID: <17514905.1385370503062.JavaMail.a@cbhb-4bcb3aa917>From: han.huang@cbhb.com.cnTo: eidolond@gmail.comSubject: =?GBK?B?suLK1NPKvP4=?=Mime-Version: 1.0Content-Type: text/plain; charset=GBKContent-Transfer-Encoding: base64suLK1NPKvP4=.250 2.6.0 <17514905.1385370503062.JavaMail.a@cbhb-4bcb3aa917>[InternalId=1322968] Queued mail for delivery QUIT

其中最重要的问题是,我的邮件服务器上为了配合其他应用开启了匿名访问,然而这段程序中用的是验证身份的方式,在通过邮件服务器时,服务器认为是匿名发送,导致不能发往外网。我把代码中smtp用的端口25改为587就好使了。还有一个方法是专门为这个java发送服务器开启中继也可以,一定是只针对这个java服务器的IP而不是针对所有的中继。

以上参考

转载地址:http://krfq.baihongyu.com/

你可能感兴趣的文章
Linux中的虚拟内存机制和内存映射
查看>>
Android系统启动系列5 SystemServer进程下
查看>>
Android四大组件系列9 ContentProvider原理
查看>>
理解PendingIntent
查看>>
Android SurfaceFlinger4 提交Buffer
查看>>
深入理解 ClientLifecycleManager 机制
查看>>
android基础知识回顾--ContentProvider简单用法
查看>>
压缩解压
查看>>
js try{}catch(){}finally{}语句
查看>>
PAT (Basic Level) Practice (中文)——1005 继续(3n+1)猜想 (25分)
查看>>
PAT (Basic Level) Practice (中文)——1011 A+B 和 C (15分)
查看>>
i711700K和r55600x差距大不大 i7 11700K和r5 5600x对比哪个好
查看>>
R3 PRO 3200G和r7 3700u 哪个好
查看>>
入手评测 联想小新Pro14和Air14Plus哪个好?区别对比
查看>>
程序人生:没有伞的孩子要学会奔跑
查看>>
Express Animate for mac(动画特效制作软件)
查看>>
macOS Big Sur系统中如何开启设置触控板三指拖拽功能?
查看>>
修复苹果Mac中的快速视频播放错误的方法
查看>>
苹果HomePod智能音箱怎么使用广播功能?
查看>>
Mac系统投屏到电视机的方法
查看>>