javamail을 설치하여 socks 프록시를 실행하도록 설정했지만 통과하지는 않습니다. 나는 mail.smtp.socks.host와 mail.smtp.socks.port를 모두 설정하려고 시도했지만 메일 호스트로 직접 가게된다. 나는 아주 기본적인 것을 놓치고있는 것처럼 느껴집니다. 어떤 도움을 주시면 감사하겠습니다. 내 재산은 다음과 같습니다.양말 프록시를 무시하는 javamail
props.setProperty("mail.smtp.host", this.smtpHost);
props.setProperty("mail.smtp.port", Integer.toString(this.smtpPort));
props.setProperty("mail.smtp.user", this.smtpUser);
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.starttls.enable", Boolean.toString(this.smtpTLS));
props.setProperty("mail.debug", "true");
if (this.useSOCKSProxy) {
logger.info("Using proxy");
props.setProperty("mail.smtp.socks.host", "127.0.0.1");
props.setProperty("mail.smtp.socks.port", Integer.toString(1080));
props.setProperty("mail.smtps.socks.host", this.socksProxyHost);
props.setProperty("mail.smtps.socks.port", Integer.toString(this.socksProxyPort));
props.setProperty("proxySet", "true");
props.setProperty("socksProxyHost", this.socksProxyHost);
props.setProperty("socksProxyPort", Integer.toString(this.socksProxyPort));
}
//Session session = Session.getInstance(props, new SmtpAuthenticator(this.smtpUser,this.smtpPassword));
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(smtpUser, smtpPassword);
}
});
//Session session = Session.getInstance(props, null);
session.setDebugOut(System.out);
session.setDebug(true);
//Transport tr = session.getTransport("smtp");
//tr.connect();
//tr.connect(this.smtpHost,this.smtpPort, this.smtpUser, this.smtpPassword);
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(this.smtpFrom));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
msg.setSubject(subject);
msg.setText(msgToSend.toString());
msg.saveChanges();
Transport.send(msg);
일반적인 pebkac 문제가 발생했습니다. 1.4.5가 아닌 javamail 1.4.2를 실행했습니다. mail.socket.debug 시스템 설정은 매우 유용했습니다. – mlbiam
@ mlbiam 답변으로 받아 들여서는 안됩니다. 유용성을 위해 upvoted, 네,하지만 그것은 당신의 질문에 대답하지 않습니다! –