Spring mail 로 socks 에이 전 트 를 통 해 메 일 을 보 냅 니 다.
웹 프로젝트 에 서 는 자바 메 일 Sender 를 Spring IOC 에 맡 길 수 있 습 니 다.아래 설정 과 같이:
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="defaultEncoding" value="${email.encoding}"></property>
<property name="host" value="${email.host}"></property>
<property name="username" value="${email.username}"></property>
<property name="password" value="${email.password}"></property>
<property name="protocol" value="${email.protocal}"></property>
<property name="javaMailProperties">
<props>
<!-- -->
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
<prop key="mail.debug">true</prop>
</props>
</property>
</bean>
사용 시 Spring 용기 에서 자바 MailSenderImpl 인 스 턴 스 를 얻 고 자바 MailSender. send () 방법 을 호출 하면 메 일 을 보 내 는 기능 을 수행 할 수 있 습 니 다.
회사 가 사용 하 는 네트워크 는 외부 네트워크 를 직접 방문 할 수 없 기 때문에 메 일 을 보 내 는 것 은 대외 적 인 것 이다.프 록 시 서버 를 설치 해 야 합 니 다.자바. mail 은 http 대 리 를 모 르 고 socks V4 또는 V5 대 리 를 통 해 만 메 일 을 보 낼 수 있 습 니 다.정부측 :
Q: How do I configure JavaMail to work through my proxy server?
A: JavaMail does not currently support accessing mail servers through a web proxy server. One of the major reasons for using a proxy server is to allow HTTP requests from within a corporate network to pass through a corporate firewall. The firewall will typically block most access to the Internet, but will allow requests from the proxy server to pass through. In addition, a mail server inside the corporate network will perform a similar function for email, accepting messages via SMTP and forwarding them to their ultimate destination on the Internet, and accepting incoming messages and sending them to the appropriate internal mail server.
If your proxy server supports the SOCKS V4 or V5 protocol (http://www.socks.nec.com/aboutsocks.html, RFC1928) and allows anonymous connections, and you're using JDK 1.5 or newer and JavaMail 1.4.5 or newer, you can configure a SOCKS proxy on a per-session, per-protocol basis by setting the "mail.smtp.socks.host" property as described in the javadocs for the com.sun.mail.smtp package. Similar properties exist for the "imap" and "pop3" protocols.
If you're using older versions of the JDK or JavaMail, you can tell the Java runtime to direct all TCP socket connections to the SOCKS server. See the Networking Properties guide for the latest documentation of the socksProxyHost and socksProxyPort properties. These are system-level properties, not JavaMail session properties. They can be set from the command line when the application is invoked, for example: java -DsocksProxyHost=myproxy .... This facility can be used to direct the SMTP, IMAP, and POP3 communication from JavaMail to the SOCKS proxy server. Note that setting these properties directs all TCP sockets to the SOCKS proxy, which may have negative impact on other aspects of your application.
Without such a SOCKS server, if you want to use JavaMail to directly access mail servers outside the firewall, the firewall will need to be configured to allow such access. JavaMail does not support access through a HTTP proxy web server.
따라서 send () 방법 으로 메 일 을 보 내기 전에 프 록 시 서버 를 설정 해 야 합 니 다.
여 기 는 두 가지 방식 으로 대 리 를 실현 합 니 다. 1. jvm 의 인 자 를 설정 하고 2. 프로그램 에서 Properties 를 통 해 이 루어 집 니 다.사용 하 는 매개 변 수 는 홈 페이지 문 서 를 참조 할 수 있 습 니 다. Networking Properties 본 고 는 주로 여러분 과 두 번 째 방식 을 교류 합 니 다.
웹 시작 에 서 는 사용자 정의 Servlet 을 불 러 옵 니 다. 이 Servlet 은 프 록 시 서버 를 설정 하 는 기능 을 실현 합 니 다.부분 코드:
System.getProperties().put("proxySet", true);
System.getProperties().put("http.proxyHost", Config.getProperties("http.proxyHost"));
System.getProperties().put("http.proxyPort", Config.getProperties("http.proxyPort"));
System.getProperties().put("socksProxySet", true);
System.getProperties().put("socksProxyHost", Config.getProperties("http.proxyHost"));
System.getProperties().put("socksProxyPort", Config.getProperties("http.proxyPort"));
마찬가지 로 자바 메 일의 공식 문서 에서 도 언급 되 었 습 니 다. jdk 1.5 이상 과 자바 메 일 1.4.5 를 사용 하면 자바 메 일 Properties 설정, 더 많은 설정 항목 을 참고 할 수 있 습 니 다. com.sun.mail.smtp package 。
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="defaultEncoding" value="${email.encoding}"></property>
<property name="host" value="${email.host}"></property>
<property name="username" value="${email.username}"></property>
<property name="password" value="${email.password}"></property>
<property name="protocol" value="${email.protocal}"></property>
<property name="javaMailProperties">
<props>
<!-- -->
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
<prop key="mail.debug">true</prop>
<prop key="mail.smtp.ssl.enable">true</prop>
<prop key="mail.smtp.socks.host">cmproxy.gmcc.net</prop>
<prop key="mail.smtp.socks.port">8081</prop>
<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
</props>
</property>
</bean>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring mail 로 socks 에이 전 트 를 통 해 메 일 을 보 냅 니 다.이 를 바탕 으로 메 일 발송 기능 을 더욱 편리 하 게 실현 할 수 있 습 니 다. 웹 프로젝트 에 서 는 자바 메 일 Sender 를 Spring IOC 에 맡 길 수 있 습 니 다.아래 설정 과 같이: 회사 가...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.