Tomcat Javamail don';不要发送带有附件的电子邮件

Tomcat Javamail don';不要发送带有附件的电子邮件,tomcat,gmail,jakarta-mail,email-attachments,Tomcat,Gmail,Jakarta Mail,Email Attachments,我在Tomcat6中有一个电子邮件会话: <Resource name="email" scope="Shareable" type="javax.mail.Session" mail.debug="true" mail.smtp.user="XXXX@gmail.com" mail.smtp.password="XXXX" mail.smtp.host="smtp.gmail.com" mail.smtp.port="465" mail.smtp.auth="true" mail.smt

我在Tomcat6中有一个电子邮件会话:

<Resource name="email" scope="Shareable" type="javax.mail.Session" mail.debug="true" mail.smtp.user="XXXX@gmail.com" mail.smtp.password="XXXX" mail.smtp.host="smtp.gmail.com" mail.smtp.port="465" mail.smtp.auth="true" mail.smtp.socketFactory.port="465" mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory" />
我在所有我尝试过的服务器(Windows和Linux)上都可以正常工作,但在一台服务器上就不行了。连接突然关闭

我已经调试了javamail通信,并且:

DEBUG: JavaMail version 1.4.5
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL false
220 smtp.gmail.com ESMTP w67sm3313556wmw.17 - gsmtp
DEBUG SMTP: connected to host "smtp.gmail.com", port: 465

EHLO XXXX
250-smtp.gmail.com at your service, [88.2.96.135]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
DEBUG SMTP: Found extension "SIZE", arg "35882577"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH"
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "CHUNKING", arg ""
DEBUG SMTP: Found extension "SMTPUTF8", arg ""
DEBUG SMTP: Attempt to authenticate
DEBUG SMTP: check mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM 
DEBUG SMTP: AUTH LOGIN command trace suppressed
DEBUG SMTP: AUTH LOGIN succeeded
DEBUG SMTP: use8bit false
MAIL FROM:<XXXX@gmail.com>
250 2.1.0 OK w67sm3313556wmw.17 - gsmtp
RCPT TO:<XXX@gmail.com>
250 2.1.5 OK w67sm3313556wmw.17 - gsmtp
DEBUG SMTP: Verified Addresses
DEBUG SMTP:   XXX@gmail.com
DATA
354  Go ahead w67sm3313556wmw.17 - gsmtp
Date: Wed, 2 Dec 2015 14:49:44 +0100 (CET)
From: XXX@gmail.com
To: XXX@gmail.com
Message-ID: <17032702.26.1449064184719.JavaMail.root@Sage-Portal>
Subject: About
MIME-Version: 1.0
Content-Type: multipart/mixed; 
    boundary="----=_Part_25_13365288.1449064184718"

------=_Part_25_13365288.1449064184718
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable

Text
------=_Part_25_13365288.1449064184718
Content-Type: application/octet-stream; name=file.txt
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=file.txt

JAVAMAIL 1.4.5
------=_Part_25_13365288.1449064184718--
.
DEBUG SMTP: EOF: [EOF]
DEBUG SMTP: got response code -1, with response: [EOF]
RSET
DEBUG SMTP: MessagingException while sending
javax.mail.MessagingException: Can't send command to SMTP host;
  nested exception is:
    java.net.SocketException: Connection closed by remote host
    at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:2163)
调试:JavaMail版本1.4.5 调试:已成功加载资源:/META-INF/javamail.default.providers 调试:加载的提供程序的表 调试:按类名列出的提供程序:{com.sun.mail.smtpsslttransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.smtpsslttransport,sun Microsystems,Inc],com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtps,com.SMTPTransport,sun Microsystems,Inc],com.sun.mail.imapssltore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,sun Microsystems,Inc],com.sun.mail.pop3.pop3ssstore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.pop3ssstore,sun Microsystems,Inc],com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.mail.imap.IMAPStore,sun Microsystems,Inc],com.sun[商店,pop3,com.sun.mail.pop3.POP3Store,sun Microsystems,Inc]] 调试:协议列出的提供程序:{imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.imapssltore,sun Microsystems,Inc],imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,sun Microsystems,Inc],smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.smtpsslttransport,sun Microsystems,Inc],pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,sun Microsystems,Inc],pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.pop3ssl,sun Microsystems,Inc],smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.SMTPTransport,sun Microsystems,Inc]] 调试:已成功加载资源:/META-INF/javamail.default.address.map 调试:getProvider()返回javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,sun Microsystems,Inc] 调试SMTP:useEhlo true,useAuth true 调试SMTP:useEhlo true,useAuth true 调试SMTP:尝试连接到主机“SMTP.gmail.com”,端口465,isSSL false 220 smtp.gmail.com ESMTP w67sm3313556wmw.17-gsmtp 调试SMTP:已连接到主机“SMTP.gmail.com”,端口:465 EHLO XXXX 250-smtp.gmail.com,随时为您服务,[88.2.96.135] 250号35882577 250-8比特 250-AUTH登录普通XOAUTH2普通客户端令牌OAuthXOAuth 250-增强状态码 250-流水线 250-分块 250 SMTPUTF8 调试SMTP:找到扩展名“大小”,参数“35882577” 调试SMTP:找到扩展名“8BITMIME”,参数“” 调试SMTP:找到扩展名“AUTH”,arg“LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAuthXOAuth” 调试SMTP:找到扩展名“ENHANCEDSTATUSCODES”,arg“” 调试SMTP:找到扩展名“管道”,arg“” 调试SMTP:找到扩展名“分块”,arg“” 调试SMTP:找到扩展名“SMTPUTF8”,arg“” 调试SMTP:尝试进行身份验证 调试SMTP:检查机制:登录普通摘要-MD5 NTLM 调试SMTP:身份验证登录命令跟踪被抑制 调试SMTP:验证登录成功 调试SMTP:use8bit false 邮寄地址: 250 2.1.0正常w67sm3313556wmw.17-gsmtp RCPT至: 250 2.1.5正常w67sm3313556wmw.17-gsmtp 调试SMTP:已验证的地址 调试SMTP:XXX@gmail.com 资料 354继续w67sm3313556wmw.17-gsmtp 日期:2015年12月2日星期三14:49:44+0100(CET) 发件人:XXX@gmail.com 致:XXX@gmail.com 消息ID: 主题:关于 MIME版本:1.0 内容类型:多部分/混合; 边界=“---=”第25部分“13365288.1449064184718” ------=第25部分13365288.1449064184718 内容类型:文本/普通;字符集=ISO-8859-15 内容传输编码:引用可打印 正文 ------=第25部分13365288.1449064184718 内容类型:应用程序/八位字节流;名称=file.txt 内容传输编码:7bit 内容配置:附件;文件名=file.txt JAVAMAIL 1.4.5 ------=第25部分13365288.1449064184718-- . 调试SMTP:EOF:[EOF] 调试SMTP:获取响应代码-1,响应:[EOF] RSET 发送时调试SMTP:MessaginException javax.mail.MessaginException:无法向SMTP主机发送命令; 嵌套异常是: java.net.SocketException:远程主机关闭的连接 在com.sun.mail.smtp.SMTPTransport.sendCommand上(SMTPTransport.java:2163) 在此服务器中,有时发送带有附件的电子邮件,但通常不发送。如果电子邮件没有附件,则始终发送。在其他服务器中,始终发送电子邮件


可能是什么问题:Tomcat6、Gmail、Javamail、服务器……

所有Tomcat服务器都使用同一个SMTP服务器吗?导致Windows服务器故障的服务器是否运行可能会干扰通信的防病毒或防火墙软件?有distincts SMTP服务器,但还有其他服务器使用相同的SMTP服务器吗(gmail)这很好。出现故障的服务器是Linux。没有防病毒。防火墙正在运行,并且有一个允许通信的规则……基于故障,我认为防病毒程序是最有可能的罪魁祸首,你检查过了吗?如果不是,请提供运行Tomcat的机器及其正在谈论的SMTP服务器的更多详细信息到。其他服务器是否使用同一帐户成功地与该SMTP服务器通信?失败的服务器能否成功地与其他SMTP服务器通信?
DEBUG: JavaMail version 1.4.5
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL false
220 smtp.gmail.com ESMTP w67sm3313556wmw.17 - gsmtp
DEBUG SMTP: connected to host "smtp.gmail.com", port: 465

EHLO XXXX
250-smtp.gmail.com at your service, [88.2.96.135]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
DEBUG SMTP: Found extension "SIZE", arg "35882577"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH"
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "CHUNKING", arg ""
DEBUG SMTP: Found extension "SMTPUTF8", arg ""
DEBUG SMTP: Attempt to authenticate
DEBUG SMTP: check mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM 
DEBUG SMTP: AUTH LOGIN command trace suppressed
DEBUG SMTP: AUTH LOGIN succeeded
DEBUG SMTP: use8bit false
MAIL FROM:<XXXX@gmail.com>
250 2.1.0 OK w67sm3313556wmw.17 - gsmtp
RCPT TO:<XXX@gmail.com>
250 2.1.5 OK w67sm3313556wmw.17 - gsmtp
DEBUG SMTP: Verified Addresses
DEBUG SMTP:   XXX@gmail.com
DATA
354  Go ahead w67sm3313556wmw.17 - gsmtp
Date: Wed, 2 Dec 2015 14:49:44 +0100 (CET)
From: XXX@gmail.com
To: XXX@gmail.com
Message-ID: <17032702.26.1449064184719.JavaMail.root@Sage-Portal>
Subject: About
MIME-Version: 1.0
Content-Type: multipart/mixed; 
    boundary="----=_Part_25_13365288.1449064184718"

------=_Part_25_13365288.1449064184718
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable

Text
------=_Part_25_13365288.1449064184718
Content-Type: application/octet-stream; name=file.txt
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=file.txt

JAVAMAIL 1.4.5
------=_Part_25_13365288.1449064184718--
.
DEBUG SMTP: EOF: [EOF]
DEBUG SMTP: got response code -1, with response: [EOF]
RSET
DEBUG SMTP: MessagingException while sending
javax.mail.MessagingException: Can't send command to SMTP host;
  nested exception is:
    java.net.SocketException: Connection closed by remote host
    at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:2163)