Java 코드에서 내 Gmail 계정의 이메일을 가져오고 싶습니다. 어떻게이 일을 할 수 있습니까?Java 애플리케이션에서 내 Gmail 이메일에 액세스하려면 어떻게해야합니까?
2
A
답변
1
1
또 다른 옵션 : Gmail 전용 솔루션 인 경우 Gmail은 사서함에 RSS 피드를 제공하므로 일반 XML 처리 API로 액세스 할 수 있습니다.
0
다음은 POST OFFICE PROTOCOL (pop3)을 사용하여 Gmail 계정에서 첨부 파일 (있는 경우)을 가져 오는 코드입니다.
import com.sun.mail.pop3.POP3Folder;
import com.sun.mail.pop3.POP3SSLStore;
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.MimeBodyPart;
public class MailfetchingPop3
{
private Session session;
private POP3SSLStore store;
private String username;
private String password;
private POP3Folder folder;
public static String numberOfFiles = null;
public static int toCheck = 0;
public static Writer output = null;
URLName url;
public static String receiving_attachments="C:\\download";
public MailfetchingPop3()
{
session = null;
store = null;
}
public void setUserPass(String username, String password)
{
this.username = username;
this.password = password;
}
public void connect()
throws Exception
{
String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
Properties pop3Props = new Properties();
pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false");
pop3Props.setProperty("mail.pop3.port", "995");
pop3Props.setProperty("mail.pop3.socketFactory.port", "995");
url = new URLName("pop3", "pop.gmail.com", 995, "", username, password);
session = Session.getInstance(pop3Props, null);
store = new POP3SSLStore(session, url);
store.connect();
}
public void openFolder(String folderName)
throws Exception
{
folder = (POP3Folder)store.getFolder(folderName);
System.out.println((new StringBuilder("For test----")).append(folder.getParent().getFullName()).toString());
if(folder == null)
throw new Exception("Invalid folder");
try
{
folder.open(2);
System.out.println((new StringBuilder("Folder name----")).append(folder.getFullName()).toString());
}
catch(Exception ex)
{
System.out.println((new StringBuilder("Folder Opening Exception..")).append(ex).toString());
}
}
public void closeFolder()
throws Exception
{
folder.close(false);
}
public int getMessageCount()
throws Exception
{
return folder.getMessageCount();
}
public int getNewMessageCount()
throws Exception
{
return folder.getNewMessageCount();
}
public void disconnect()
throws Exception
{
store.close();
}
public void printAllMessages()
throws Exception
{
Message msgs[] = folder.getMessages();
FetchProfile fp = new FetchProfile();
folder.fetch(msgs, fp);
for(int i = 0; i < msgs.length; i++)
dumpEnvelope(msgs[i]);
}
public static int saveFile(File saveFile, Part part) throws Exception {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(saveFile));
byte[] buff = new byte[2048];
InputStream is = part.getInputStream();
int ret = 0, count = 0;
while((ret = is.read(buff)) > 0){
bos.write(buff, 0, ret);
count += ret;
}
bos.close();
is.close();
return count;
}
private static void dumpEnvelope(Message m) throws Exception
{
String body="";
String path="";
int size=0;
Object content = m.getContent();
if(content instanceof String){
body = (String)content;
}
else if(content instanceof Multipart)
{
Multipart mp = (Multipart)content;
for (int j=0; j < mp.getCount(); j++)
{
Part part = mp.getBodyPart(j);
String disposition = part.getDisposition();
//System.out.println("test disposition---->>"+disposition);
if (disposition == null) {
// Check if plain
MimeBodyPart mbp = (MimeBodyPart)part;
if (mbp.isMimeType("text/plain")) {
body += mbp.getContent().toString();
}
else if (mbp.isMimeType("TEXT/HTML")) {
body += mbp.getContent().toString();
}
else {
//unknown
}
} else if ((disposition != null) &&
(disposition.equals(Part.ATTACHMENT) || disposition.equals(Part.INLINE) || disposition.equals("ATTACHMENT") || disposition.equals("INLINE")))
{
// Check if plain
MimeBodyPart mbp = (MimeBodyPart)part;
if (mbp.isMimeType("text/plain")) {
body += (String)mbp.getContent();
}
else if (mbp.isMimeType("TEXT/HTML")) {
body += mbp.getContent().toString();
}
else {
File savedir = new File(receiving_attachments);
savedir.mkdirs();
File savefile = new File(savedir+"\\"+part.getFileName());
path = savefile.getAbsolutePath();
size = saveFile(savefile, part);
}
}
}
}
}
public static void main(String args[])
{
try
{
MailfetchingPop3 gmail = new MailfetchingPop3();
gmail.setUserPass("your_gmail_Id", "your_gmail_mail_id_password");
gmail.connect();
gmail.openFolder("INBOX");
gmail.printAllMessages();
}
catch(Exception e)
{
e.printStackTrace();
System.exit(-1);
}
}
}
는
javamail.jar하고 여기에
3
activation.jar이 다운로드되고 또한 첨부 파일과 함께 적절한 형식으로 콘솔에서 이메일 MSG를 표시 새로 고침 작업 코드입니다 다운로드하기 위해 필요한이 자바 클래스를 실행하려면 ....
import com.sun.mail.pop3.POP3Folder;
import com.sun.mail.pop3.POP3SSLStore;
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.MimeBodyPart;
public class MailfetchingPop3
{
private Session session;
private POP3SSLStore store;
private String username;
private String password;
private POP3Folder folder;
public static String numberOfFiles = null;
public static int toCheck = 0;
public static Writer output = null;
URLName url;
public static String receiving_attachments="C:\\download";
public MailfetchingPop3()
{
session = null;
store = null;
}
public void setUserPass(String username, String password)
{
this.username = username;
this.password = password;
}
public void connect()
throws Exception
{
String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
Properties pop3Props = new Properties();
pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false");
pop3Props.setProperty("mail.pop3.port", "995");
pop3Props.setProperty("mail.pop3.socketFactory.port", "995");
url = new URLName("pop3", "pop.gmail.com", 995, "", username, password);
session = Session.getInstance(pop3Props, null);
store = new POP3SSLStore(session, url);
store.connect();
}
public void openFolder(String folderName)
throws Exception
{
folder = (POP3Folder)store.getFolder(folderName);
System.out.println((new StringBuilder("For test----")).append
(folder.getParent().getFullName()).toString());
if(folder == null)
throw new Exception("Invalid folder");
try
{
folder.open(2);
System.out.println((new StringBuilder("Folder name----")).append
(folder.getFullName()).toString());
}
catch(Exception ex)
{
System.out.println((new StringBuilder("Folder Opening Exception..")).append(ex).toString());
}
}
public void closeFolder()
throws Exception
{
folder.close(false);
}
public int getMessageCount()
throws Exception
{
return folder.getMessageCount();
}
public int getNewMessageCount()
throws Exception
{
return folder.getNewMessageCount();
}
public void disconnect()
throws Exception
{
store.close();
}
public void printAllMessages()
throws Exception
{
Message msgs[] = folder.getMessages();
FetchProfile fp = new FetchProfile();
folder.fetch(msgs, fp);
for(int i = 0; i < msgs.length; i++){
Message message = msgs[i];
dumpEnvelope(msgs[i]);
System.out.println("==============================");
System.out.println("Email #" + (i + 1));
System.out.println("Subject: " + message.getSubject());
System.out.println("From: " + message.getFrom()[0]);
System.out.println("Text: " + message.getContent().toString());
}
}
public static int saveFile(File saveFile, Part part) throws Exception {
BufferedOutputStream bos = new BufferedOutputStream(new
FileOutputStream(saveFile));
byte[] buff = new byte[2048];
InputStream is = part.getInputStream();
int ret = 0, count = 0;
while((ret = is.read(buff)) > 0){
bos.write(buff, 0, ret);
count += ret;
}
bos.close();
is.close();
return count;
}
private static void dumpEnvelope(Message m) throws Exception
{
String body="";
String path="";
int size=0;
Object content = m.getContent();
if(content instanceof String){
body = (String)content;
}
else if(content instanceof Multipart)
{
Multipart mp = (Multipart)content;
for (int j=0; j < mp.getCount(); j++)
{
Part part = mp.getBodyPart(j);
String disposition = part.getDisposition();
//System.out.println("test disposition---->>"+disposition);
if (disposition == null) {
// Check if plain
MimeBodyPart mbp = (MimeBodyPart)part;
if (mbp.isMimeType("text/plain")) {
body += mbp.getContent().toString();
}
else if (mbp.isMimeType("TEXT/HTML")) {
body += mbp.getContent().toString();
}
else {
//unknown
}
} else if ((disposition != null) &&
(disposition.equals(Part.ATTACHMENT) || disposition.equals
(Part.INLINE) || disposition.equals("ATTACHMENT") || disposition.equals
("INLINE")))
{
// Check if plain
MimeBodyPart mbp = (MimeBodyPart)part;
if (mbp.isMimeType("text/plain")) {
body += (String)mbp.getContent();
}
else if (mbp.isMimeType("TEXT/HTML")) {
body += mbp.getContent().toString();
}
else {
File savedir = new File(receiving_attachments);
savedir.mkdirs();
File savefile = new File(savedir+"\\"+part.getFileName());
path = savefile.getAbsolutePath();
size = saveFile(savefile, part);
}
}
}
}
}
public static void main(String args[])
{
try
{
MailfetchingPop3 gmail = new MailfetchingPop3();
gmail.setUserPass("your-gmail-username", "your-gmail-password");
gmail.connect();
gmail.openFolder("INBOX");
gmail.printAllMessages();
}
catch(Exception e)
{
e.printStackTrace();
System.exit(-1);
}
}
}
관련 문제
- 1. sinetfactory api를 사용하여 Gmail 메일에 액세스하는 방법 예를 제공하십시오. sinetfactory API를 사용하여 Gmail 이메일에 액세스하려면 어떻게해야합니까?
- 2. .NET 애플리케이션에서 내 계정의 Gmail 담당자에게 문의하려면 어떻게해야합니까?
- 3. 프로그래밍 방식으로 Gmail 채팅에 액세스하려면 어떻게해야합니까?
- 4. GMAIL 첨부 파일에 프로그래밍 방식으로 액세스하려면 어떻게해야합니까?
- 5. 내 ResourceDictionary에 액세스하려면 어떻게해야합니까?
- 6. Gmail의 이메일에 대한 지속적인 참조를 유지하면서 Google App 애플리케이션에서 사본을 액세스하려면 어떻게해야합니까?
- 7. 전체 앱에서 내 Rails 변수에 액세스하려면 어떻게해야합니까?
- 8. 내 사용자를 내 애플리케이션에서 등록 해제하려면 어떻게해야합니까?
- 9. Google App Engine (Java) 내 이미지의 개별 픽셀에 액세스하려면 어떻게해야합니까?
- 10. Java 엔터프라이즈 애플리케이션에서 내 파일의 파일 경로를 얻으려면 어떻게해야합니까?
- 11. 이메일에 = 기호가 gmail/outlook의 일부 문자로 바뀝니다.
- 12. gmail api : 이미 vb.net에서받은 편지함에있는 이메일에 답장합니다.
- 13. 참조없이 Java 힙 오브젝트에 액세스하려면 어떻게해야합니까?
- 14. PHP : 애플리케이션에서 Gmail 인증 - oAuth가이 기능을 개선합니까?
- 15. 내 iPhone 앱에서 iPod 라이브러리에 액세스하려면 어떻게해야합니까?
- 16. 무스 강제로 내 개체의 속성에 액세스하려면 어떻게해야합니까?
- 17. 로컬 네트워크에서 내 WCF 서비스에 액세스하려면 어떻게해야합니까?
- 18. Android에서 Java를 사용하여 내 애플리케이션에서 Google 캘린더 (온라인) 이벤트 데이터에 액세스하려면 어떻게해야합니까?
- 19. Java에서 Perl 변수에 액세스하려면 어떻게해야합니까?
- 20. Javascript로 memcached에 액세스하려면 어떻게해야합니까?
- 21. 내 발표자의 x : 이름을 통해 내 View 요소에 액세스하려면 어떻게해야합니까?
- 22. 리본 상자에 액세스하려면 어떻게해야합니까?
- 23. 스프링 컨테이너에 액세스하려면 어떻게해야합니까?
- 24. 내 앱의 이메일에 형식을 지정하고 이미지를 저장하려면 어떻게해야합니까?
- 25. JavaScript에 전달 된 String 변수에서 Java String 메소드에 액세스하려면 어떻게해야합니까?
- 26. 내 애플리케이션에서 로그 아웃
- 27. 응용 프로그램에서 conact에 액세스하려면 어떻게해야합니까?
- 28. Weblogic을 사용하여 파일에 액세스하려면 어떻게해야합니까?
- 29. 뷰에서 중첩 모델에 액세스하려면 어떻게해야합니까?
- 30. IXMLDOMNode에서 요소 속성에 액세스하려면 어떻게해야합니까?
안녕하세요,이 숙제입니까? –
[Gmail에서 IMAP을 사용하여 Java 응용 프로그램으로 메일 가져 오기] (http://stackoverflow.com/questions/61176/getting-mail-from-gmail-into-java-application-using-imap) –
검색 창 오른쪽 상단에 있습니다. –