我发现javamail只支持袜子。有什么解决方案可以支持http代理吗?
public class MailConnectionTest {
public static void main(String args[]) throws MessagingException {
Properties props = MailConnectionTest.getProperties();
Session session = Session.getDefaultInstance(props, null);
String protocol = "pop3";
String host = "pop.163.com";
String username = "email username";
String password = "1Qaz2wsx3edc&";
Store store = session.getStore(protocol);
store.connect(host, username, password);
System.out.println("Success");
}
private static Properties getProperties() {
Properties props = System.getProperties();
props.put("mail.debug", "false");
// Proxy
props.put("proxySet", "true");
props.put("http.proxyHost", "proxyAdderss");
props.put("http.proxyPort", "8080");
return props;
}
}
请参阅JavaMail常见问题解答:
... 如果没有这样的SOCKS服务器,如果您想使用JavaMail间接访问防火墙外的邮件服务器,您可能可以使用诸如Corkstrow之类的程序,或者通过HTTP代理服务器连接到隧道TCP连接。JavaMail不支持通过HTTP代理web服务器直接访问。
javamail api 1.6支持web服务器代理
设置这些属性
邮政协议代理主办
mail.protocol.proxy.port
对于smtp设置为
邮政smtp。代理主办
邮政smtp。代理港口城市
根据Javamail API 1.6.2的最新版本,JavaMail支持通过Web代理服务器访问邮件服务器,并向代理服务器进行身份验证。请看下面我的代码。
import java.io.IOException;
import java.net.Authenticator;
import java.net.MalformedURLException;
import java.net.PasswordAuthentication;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.mail.BodyPart;
import javax.mail.Flags;
import javax.mail.Flags.Flag;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.search.FlagTerm;
public class ReadMailProxy {
public static void receiveMail(String userName, String password) {
try {
String proxyIP = "124.124.124.14";
String proxyPort = "4154";
String proxyUser = "test";
String proxyPassword = "test123";
Properties prop = new Properties();
prop.setProperty("mail.imaps.proxy.host", proxyIP);
prop.setProperty("mail.imaps.proxy.port", proxyPort);
prop.setProperty("mail.imaps.proxy.user", proxyUser);
prop.setProperty("mail.imaps.proxy.password", proxyPassword);
Session eSession = Session.getInstance(prop);
Store eStore = eSession.getStore("imaps");
eStore.connect("imap.mail.yahoo.com", userName, password);
Folder eFolder = eStore.getFolder("Inbox");
eFolder.open(Folder.READ_WRITE);
Message messages[] = eFolder.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));
System.out.println(messages.length);
for (int i = messages.length - 3; i < messages.length - 2; i++) {
Message message = messages[i];
System.out.println("Email Number::" + (i + 1));
System.out.println("Subject::" + message.getSubject());
System.out.println("From::" + message.getFrom()[0]);
System.out.println("Date::" + message.getSentDate());
try {
Multipart multipart = (Multipart) message.getContent();
for (int x = 0; x < multipart.getCount(); x++) {
BodyPart bodyPart = multipart.getBodyPart(x);
String disposition = bodyPart.getDisposition();
if (disposition != null && (disposition.equals(BodyPart.ATTACHMENT))) {
System.out.println("Mail have some attachment : ");
DataHandler handler = bodyPart.getDataHandler();
System.out.println("file name : " + handler.getName());
} else {
System.out.println(bodyPart.getContent());
}
}
} catch (Exception e) {
System.out.println("Content: " + message.getContent().toString());
}
message.setFlag(Flag.SEEN, true);
}
eFolder.close(true);
eStore.close();
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
receiveMail("umesh@yahoo.com", "test123");
}
}
我正在使用Spring 5 WebClient。我想知道是否可以将其配置为使用HTTP代理,或者是否有方法更改其默认配置以使用HTTP代理。
本文向大家介绍如何让IE6支持min-width和max-width?相关面试题,主要包含被问及如何让IE6支持min-width和max-width?时的应答技巧和注意事项,需要的朋友参考一下 利用IE特有的css语法 参考文章
我有一个Node.js驱动的网站,我正在亚马逊弹性豆茎上运行。 我的Node.js应用程序在端口8080上侦听,我正在使用nginx弹性负载均衡器配置我的EB应用程序,在端口80和443上侦听HTTP和HTTPS。 然而,我只想在我的应用程序中接受通过HTTPS传输的流量。 我可以在应用程序中安装一些东西来处理这个问题,但我感兴趣的是一种让负载均衡器通过HTTPS将所有HTTP请求重定向到我的网站
一个好的HTTP缓存策略可以极大地提高一个web应用的性能及客户端的体验。谈到HTTP缓存,它主要是与HTTP的响应头'Cache-Control'相关,其次另外的一些响应头比如'Last-Modified'和'ETag'等也会起一定的作用。 HTTP的响应头'Cache-Control'主要帮助私有缓存(比如浏览器端缓存)和公共缓存(比如代理端缓存)了解它们应该如果缓存HTTP响应,以便后用。
我目前正在开发一个支持保活连接的多线程代理服务器。在处理来自火狐浏览器的请求时,我看到了一些奇怪的问题。我使用localhost:10001/http://url连接到我的本地代理,我可以访问这个主机上的所有链接。过程如下。1.创建一个套接字,将其绑定到端口10001 2.接受连接,如果客户端连接了fork()3.继续将客户端请求处理为持久连接。 现在的问题是,当我在Firefox中打开一个新选项
本文向大家介绍PHP中让curl支持sock5的代码实例,包括了PHP中让curl支持sock5的代码实例的使用技巧和注意事项,需要的朋友参考一下