1
Google App Engine 프로젝트에서 IMAP을 통해 메일 내용을 가져 오려고 몇 일간 노력하고 있습니다.Google App Engine (GAE) message.getContent()가 javamail 및 IMAP를 사용하지 않음
나는 다른 모든 정보를 추출 할 수 있었지만 오류 메시지 (심지어 message.getContent.tostring()을 호출해도 작동하지 않음)의 내용을 추출하기 위해 MultiPart로 시도했습니다.
일반 프로젝트 (GAE가 아니고 javamail.1.4.7을 사용하는 것)와 동일한 작업을 완벽하게 수행 한 메시지 내용입니다.
import java.util.Properties;
import java.util.logging.Logger;
import javax.mail.Session;
import java.io.IOException;
import javax.mail.Authenticator;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Store;
import javax.servlet.http.*;
@SuppressWarnings("serial")
public class nuevo extends HttpServlet {
private String User;
private String Pass;
private static final Logger log = Logger.getLogger(nuevo.class
.getName());
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
User = "User";
Pass = "Pass";
LlamaIMAP(resp);
}
public void LlamaIMAP(HttpServletResponse resp) {
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
props.put("mail.imap.host", "imap.gmail.com");
props.put("mail.imap.user", User);
props.put("mail.imap.socketFactory", 993);
props.put("mail.imap.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.imap.port", 993);
Session session = Session.getDefaultInstance(props,
new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(User, Pass);
}
});
try {
Store store = session.getStore("imap");
store.connect("imap.gmail.com", 993, User, Pass);
Folder fldr = store.getFolder("Inbox");
fldr.open(Folder.HOLDS_MESSAGES);
// HOLDS_MESSAGES);
Message[] ar = fldr.getMessages();
int count = fldr.getMessageCount();
resp.getWriter().println(count);
resp.getWriter().println(ar[0].getAllRecipients()[0].toString());
resp.getWriter().println(ar[0].getFrom()[0].toString());
resp.getWriter().println(ar[0].getSentDate().toString());
resp.getWriter().println(ar[0].getSubject());
resp.getWriter().println(ar[0].getContent().toString());
} catch (Exception exc) {
try {
resp.getWriter().println(exc + "error");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
"오류 메시지가 나에게 나타납니다"는 의미는 무엇입니까? 어떤 오류 메시지가 나타 납니까? [JavaMail 디버그 출력] (http://www.oracle.com/technetwork/java/javamail/faq/index.html#debug)은 무엇을 표시합니까? 또한 [일반적인 실수] (http://www.oracle.com/technetwork/java/javamail/faq/index.html#commonmistakes)를 수정하십시오. –