java使用IMAP连接Gmail并解析邮件详解编程语言
2023-06-13 09:20:30 时间
Properties props = System.getProperties();
props.setProperty( "mail.store.protocol", "imaps" );
BufferedWriter myWriter = null;
try {
myWriter = new BufferedWriter( new FileWriter(
"/home/diggler/Desktop/groovy_testing/BigBendHotSprings/BBHSHelpers.csv" ) );
myWriter.write( "/"Sent Date/",/"Subject/",/"From/",
/"E-Mail/",/"Phone Number/",/"Skills Interests/",/"Comments/"/n" );
catch ( IOException myIOE ) {
myIOE.printStackTrace();
try {
Session mySession = Session.getDefaultInstance( props, null );
Store myStore = mySession.getStore("imaps");
myStore.connect( host, username, password );
System.out.println( myStore );
Folder inbox = myStore.getFolder("BBHS Helpers");
inbox.open(Folder.READ_ONLY);
Message messages[] = inbox.getMessages();
System.out.println( messages.length );
for ( Message message:messages ) {
Address addys[] = message.getReplyTo();
for ( Address addy:addys ) {
//System.out.println( addy.toString() );
if ( addy.toString().trim().equals( "alchemiculture [email protected] " ) ) {
if ( message.getSubject().startsWith( "BigBendHotSprings.org Message from" ) ) {
String messageSubject = message.getSubject();
String sentDate = myFormatter.format( message.getSentDate() );
MimeMessage myMimeMessage = (MimeMessage) message;
try {
// System.out.println( messageSubject );
// System.out.println( sentDate );
String messageContent = (String) myMimeMessage.getContent();
String messageContentLines[] = messageContent.split("/n");
String from = "";
String eMail = "";
String phoneNumber = "";
for ( String line:messageContentLines ) {
if ( line.startsWith( "From:" ) ) {
from = line.split(":")[1].trim();
if ( line.startsWith( "Email:" ) ) {
eMail = line.split(":")[1].trim();
if ( line.startsWith( "Phone:" ) ) {
phoneNumber = line.split(":")[1].trim();
String messageContentSplits[] = messageContent.split("Skills and Interests:");
String messageContentSplitsII[] = messageContentSplits[1].split("Comments:");
String skillsAndInterests = messageContentSplitsII[0].trim();
skillsAndInterests = skillsAndInterests.replaceAll( "/n", "" );
skillsAndInterests = skillsAndInterests.replaceAll( "/"", "" );
skillsAndInterests = skillsAndInterests.replaceAll( ",", "" );
String comments = messageContentSplitsII[1].trim();
comments = comments.replaceAll( "/n", "" );
comments = comments.replaceAll( "/"", "" );
comments = comments.replaceAll( ",", "" );
// System.out.println( skillsAndInterests );
// System.out.println( comments );
myWriter.write( "/"" + sentDate + "/",/"" + messageSubject + "/",/"" +
from + "/",/"" + eMail + "/",/"" + phoneNumber + "/",/"" + s/
killsAndInterests + "/",/"" + comments + "/"/n" );
catch ( IOException myIOE ) {
myIOE.printStackTrace();
catch ( NoSuchProviderException e ) {
e.printStackTrace();
catch ( MessagingException e ) {
e.printStackTrace();
try {
myWriter.close();
catch ( IOException myIOE ) {
myIOE.printStackTrace();
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11048.html
cjava相关文章
- java volatile关键字的作用_Java并发编程彻底搞懂volatile关键字「建议收藏」
- java queue toarray_Java PriorityBlockingQueue toArray()用法及代码示例
- java数组的声明_Java数组定义常用方法[通俗易懂]
- java图书馆新地址_值得你关注的16个顶级 Java 开源项目!小白必看
- JAVA静态内部类_java静态内部类实例化
- java创建线程池的几种方式_Java中的线程池
- 从java到JavaScript(1),看Dart:对比Java/Go/Swift/Rust
- java中可以通过调用ping命令来判断网络是否连接正常详解编程语言
- Java学习笔记之九java二维数组及其多维数组的内存应用拓展延伸详解编程语言
- 实现使用Java代码实现MySQL数据库连接(java连接mysql数据库代码)
- 解决Java程序连接MySQL数据库的方法(java链接mysql数据库)
- 利用Redis存储Java对象的方法(redis存储java对象)
- Java操作Oracle数据库:实现数据库连接与访问(java连接oracle数据库)
- Java实现Sybase数据库连接详解编程语言
- JAVA连接SAP详解编程语言
- Java连接redis集群操作存储、删除以及获取值详解编程语言
- Java连接SQL Server:实现数据库完美对接(java链接sqlserver)
- 连接MySQL与Java组合实现长连接功能(mysqljava长)
- java数据库操作类演示实例分享(java连接数据库)