使用javamail通过代理发送邮件
2023-03-09 22:24:38 时间
我们是没办法使用javamail通过一般的代理服务器发送邮件的,比如下面的代码是没有效果的:
不过可以通过socks网关来访问外网的email服务器,当然,前提是你安装了一个socks服务器。完整的使用代理发送邮件代码如下:
Properties props = System.getProperties();
props.setProperty("proxySet","true");
props.setProperty("ProxyHost","192.168.155.1");
props.setProperty("ProxyPort","1080");
//或者这样,也是没用
//Properties props = System.getProperties();
//props.setProperty("proxySet","true");
//props.setProperty("http.proxyHost","192.168.155.1");
//props.setProperty("http.proxyPort","808");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
// props.put("mail.store.protocol", "pop3");
// props.put("mail.transport.protocol", "smtp");
final String username = "username"
final String password = "password"
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username,
password);
}
});
MimeMessage message = new MimeMessage(session);
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
props.setProperty("proxySet","true");
props.setProperty("ProxyHost","192.168.155.1");
props.setProperty("ProxyPort","1080");
//或者这样,也是没用
//Properties props = System.getProperties();
//props.setProperty("proxySet","true");
//props.setProperty("http.proxyHost","192.168.155.1");
//props.setProperty("http.proxyPort","808");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
// props.put("mail.store.protocol", "pop3");
// props.put("mail.transport.protocol", "smtp");
final String username = "username"
final String password = "password"
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username,
password);
}
});
MimeMessage message = new MimeMessage(session);
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
不过可以通过socks网关来访问外网的email服务器,当然,前提是你安装了一个socks服务器。完整的使用代理发送邮件代码如下:
package net.rubyeye.testjms;
import java.util.Date;
import java.util.Properties;
import java.security.Security;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
// final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
//设置代理服务器
Properties props = System.getProperties();
props.setProperty("proxySet", "true");
props.setProperty("socksProxyHost", "192.168.155.1");
props.setProperty("socksProxyPort", "1081");
props.setProperty("mail.smtp.host", "smtp.126.com");
// props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
// props.setProperty("mail.smtp.socketFactory.fallback", "false");
// props.setProperty("mail.smtp.port", "465");
// props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
// props.put("mail.store.protocol", "pop3");
// props.put("mail.transport.protocol", "smtp");
final String username = "username";
final String password = "password";
//使用验证
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username,
password);
}
});
MimeMessage message = new MimeMessage(session);
Address address = new InternetAddress("killme6115@126.com");
Address toAaddress = new InternetAddress("killme6115@sina.com");
message.setFrom(address);
message.setRecipient(MimeMessage.RecipientType.TO, toAaddress);
message.setSubject("测试");
message.setText("test");
message.setSentDate(new Date());
Transport.send(message);
System.out.println("邮件发送!");
}
}
import java.util.Date;
import java.util.Properties;
import java.security.Security;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
// final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
//设置代理服务器
Properties props = System.getProperties();
props.setProperty("proxySet", "true");
props.setProperty("socksProxyHost", "192.168.155.1");
props.setProperty("socksProxyPort", "1081");
props.setProperty("mail.smtp.host", "smtp.126.com");
// props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
// props.setProperty("mail.smtp.socketFactory.fallback", "false");
// props.setProperty("mail.smtp.port", "465");
// props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
// props.put("mail.store.protocol", "pop3");
// props.put("mail.transport.protocol", "smtp");
final String username = "username";
final String password = "password";
//使用验证
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username,
password);
}
});
MimeMessage message = new MimeMessage(session);
Address address = new InternetAddress("killme6115@126.com");
Address toAaddress = new InternetAddress("killme6115@sina.com");
message.setFrom(address);
message.setRecipient(MimeMessage.RecipientType.TO, toAaddress);
message.setSubject("测试");
message.setText("test");
message.setSentDate(new Date());
Transport.send(message);
System.out.println("邮件发送!");
}
}
文章转自庄周梦蝶 ,原文发布时间5.17
相关文章
- 轻松使用 AWS Service Broker – 现适用于 GovCloud
- Kata Containers 1.5 版发布并提供 Firecracker 支持
- 新 – 适用于 Amazon Elastic File System (EFS) 的不频繁访问存储类
- 使用来自 AWS Serverless Application Repository 的组件构建无服务器应用程序
- 最新 AWS 精英简介 – 2019 年冬
- 了解 AWS 服务和解决方案 — AWS 3 月在线技术讲座
- 新增功能 – 适用于网络负载均衡器的 TLS 终止
- FOSDEM 2019 大会开源热
- python Socket服务器转发
- Amazon WorkLink – 单击一下,即可通过移动设备安全地访问内部网站和应用程序
- 通过 AWS CodeCommit 将 Phabricator 与 AWS CodePipeline 集成
- AWS 备份 – 自动化和集中管理您的备份
- Java web入门
- 通过乐鑫原生 SDK-ESP IDF 连接 AWS IoT 平台
- 幕后英雄、毯下巨人 – 支持 AWS re:Invent 2018 大会的 CenturyLink 网络
- 招募在 AWS 工作的开源贡献者
- 使用 AWS IoT 按钮实现按需 VPN 访问
- 2018 年十大热门文章
- 了解 AWS 服务和解决方案 – AWS 1 月在线技术讲座
- 在 EKS 上使用 Kubernetes Service Catalog 和 AWS Service Broker