如何通过代理服务器用Java(JSP)发送电子邮件?

如何通过代理服务器用Java(JSP)发送电子邮件?,java,jsp,email,proxy,jakarta-mail,Java,Jsp,Email,Proxy,Jakarta Mail,我使用JavaMail API在J中发送电子邮件。如果我在没有代理的情况下通过网络使用它,效果很好,但我们学院使用代理服务器,这就是为什么它在学院不起作用的原因。我认为我们的学院代理服务器只支持HTTP和HTTPS代理,不支持SOCKS代理。 我用过 而且我还试着设置 但它仍然不起作用,产生了类似这样的错误 我知道JavaMail不支持通过web代理服务器访问邮件服务器。请提出一些关于如何重新爱上它的想法?或者请建议其他机制,通过JavaJSP发送电子邮件的API。并提出一些通过Java(

我使用JavaMail API在J中发送电子邮件。如果我在没有代理的情况下通过网络使用它,效果很好,但我们学院使用代理服务器,这就是为什么它在学院不起作用的原因。我认为我们的学院代理服务器只支持HTTP和HTTPS代理,不支持SOCKS代理。 我用过


而且我还试着设置


但它仍然不起作用,产生了类似这样的错误


我知道JavaMail不支持通过web代理服务器访问邮件服务器。请提出一些关于如何重新爱上它的想法?或者请建议其他机制,通过JavaJSP发送电子邮件的API。并提出一些通过Java(JSP)发送短信的想法。

请看以下:,尽管它可以使用SOCKS代理服务器

如果代理服务器支持SOCKS V4或V5协议 (,RFC1928)并允许 匿名连接,并且您正在使用JDK1.5或更新版本和JavaMail 1.4.5或更新版本,通过将“mail.smtp.SOCKS.host”属性设置为 在com.sun.mail.smtp包的javadocs中描述。相像的 存在“imap”和“pop3”协议的属性

您可以尝试,这是一个活动的开源库,您可以使用它轻松配置SOCKS5代理(甚至是经过身份验证的代理!)

Mailer-Mailer=new-Mailer(
新服务器配置(smtpHost、smtpPort、smtpUser、smtpPassword),
TransportStrategy.SMTP_平原,
新建ProxyConfig(proxyHost、proxyPort/*、proxyUser、proxyPassword*/)
);

我尝试了SOCKS,请您建议如何检查我的代理服务器是否支持SOCKS v4/v5。正如常见问题解答所述,您可能可以使用或与您的代理服务器配合使用。
    props.put("http.proxyHost", "XXX.XXX.XXX.XXX");
    props.put("http.proxyPort", "XXXX");
    props.put("https.proxyHost", "XXX.XXX.XXX.XXX");
    props.put("https.proxyPort", "XXXX");
    props.put("mail.smtp.socks.host","XXX.XXX.XXX.XXX");
    props.put("mail.smtp.socks.port","XXXX");
javax.mail.MessagingException: Could not connect to SMTP host: smtp.mail.yahoo.com, port: 465;
  nested exception is:
    java.net.SocketException: Malformed reply from SOCKS server
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1972)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642)
    at javax.mail.Service.connect(Service.java:317)
    at javax.mail.Service.connect(Service.java:176)
    at javax.mail.Service.connect(Service.java:125)
    at javax.mail.Transport.send0(Transport.java:194)
    at javax.mail.Transport.send(Transport.java:124)
    at EmailUtil.sendEmail(EmailUtil.java:33)
    at SSLEmail.main(SSLEmail.java:57)
Caused by: java.net.SocketException: Malformed reply from SOCKS server
    at java.net.SocksSocketImpl.readSocksReply(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:319)
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:233)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1938)
    ... 8 more