gpt4 book ai didi

java - 无法使用 Java 连接到我的 Gmail 收件箱

转载 作者:行者123 更新时间:2023-11-30 04:57:29 28 4
gpt4 key购买 nike

我正在尝试通过 google 找到的这段代码,但它没有连接到我的 gmail 收件箱。为什么?

我收到此错误消息:

 --------------processing mails started-----------------    getting the session for accessing email.    Not able to process the mail reading.    javax.mail.MessagingException: Connection timed out: connect;      nested exception is:        java.net.ConnectException: Connection timed out: connect        at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:618)        at javax.mail.Service.connect(Service.java:291)        at javax.mail.Service.connect(Service.java:172)        at readEmails.processMail(readEmails.java:47)        at readEmails.(readEmails.java:19)        at readEmails.main(readEmails.java:165)    Caused by: java.net.ConnectException: Connection timed out: connect        at java.net.PlainSocketImpl.socketConnect(Native Method)        at java.net.PlainSocketImpl.doConnect(Unknown Source)        at java.net.PlainSocketImpl.connectToAddress(Unknown Source)        at java.net.PlainSocketImpl.connect(Unknown Source)        at java.net.SocksSocketImpl.connect(Unknown Source)        at java.net.Socket.connect(Unknown Source)        at java.net.Socket.connect(Unknown Source)        at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:284)        at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:227)        at com.sun.mail.iap.Protocol.(Protocol.java:109)        at com.sun.mail.imap.protocol.IMAPProtocol.(IMAPProtocol.java:104)        at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:585)

The code is:

import javax.mail.AuthenticationFailedException;
import javax.mail.Folder;
import javax.mail.FolderClosedException;
import javax.mail.FolderNotFoundException;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.NoSuchProviderException;
import javax.mail.Part;
import javax.mail.ReadOnlyFolderException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.StoreClosedException;
import javax.mail.internet.InternetAddress;

public class readEmails {

//Constructor Call
public readEmails() {
processMail();
}

//Responsible for printing Data to Console
private void printData(String data) {
System.out.println(data);
}

public void processMail() {
Session session = null;
Store store = null;
Folder folder = null;
Message message = null;
Message[] messages = null;
Object messagecontentObject = null;
String sender = null;
String subject = null;
Multipart multipart = null;
Part part = null;
String contentType = null;

try {
printData("--------------processing mails started-----------------");
session = Session.getDefaultInstance(System.getProperties(), null);

printData("getting the session for accessing email.");
store = session.getStore("imap");

store.connect("imap.gmail.com","myemail@gmail.com","mypassword");
printData("Connection established with IMAP server.");

// Get a handle on the default folder
folder = store.getDefaultFolder();

printData("Getting the Inbox folder.");

// Retrieve the "Inbox"
folder = folder.getFolder("inbox");

//Reading the Email Index in Read / Write Mode
folder.open(Folder.READ_WRITE);

// Retrieve the messages
messages = folder.getMessages();

// Loop over all of the messages
for (int messageNumber = 0; messageNumber < messages.length; messageNumber++) {
// Retrieve the next message to be read
message = messages[messageNumber];

// Retrieve the message content
messagecontentObject = message.getContent();

// Determine email type
if (messagecontentObject instanceof Multipart) {
printData("Found Email with Attachment");
sender = ((InternetAddress) message.getFrom()[0]).getPersonal();

// If the "personal" information has no entry, check the address for the sender information
printData("If the personal information has no entry, check the address for the sender information.");

if (sender == null) {
sender = ((InternetAddress) message.getFrom()[0]).getAddress();
printData("sender in NULL. Printing Address:" + sender);
}
printData("Sender -." + sender);

// Get the subject information
subject = message.getSubject();

printData("subject=" + subject);

// Retrieve the Multipart object from the message
multipart = (Multipart) message.getContent();

printData("Retrieve the Multipart object from the message");

// Loop over the parts of the email
for (int i = 0; i < multipart.getCount(); i++) {
// Retrieve the next part
part = multipart.getBodyPart(i);

// Get the content type
contentType = part.getContentType();

// Display the content type
printData("Content: " + contentType);

if (contentType.startsWith("text/plain")) {
printData("---------reading content type text/plain mail -------------");
} else {
// Retrieve the file name
String fileName = part.getFileName();
printData("retrive the fileName="+ fileName);
}
}
} else {
printData("Found Mail Without Attachment");
sender = ((InternetAddress) message.getFrom()[0]).getPersonal();

// If the "personal" information has no entry, check the address for the sender information
printData("If the personal information has no entry, check the address for the sender information.");

if (sender == null) {
sender = ((InternetAddress) message.getFrom()[0]).getAddress();
printData("sender in NULL. Printing Address:" + sender);
}

// Get the subject information
subject = message.getSubject();
printData("subject=" + subject);
}
}

// Close the folder
folder.close(true);

// Close the message store
store.close();
} catch(AuthenticationFailedException e) {
printData("Not able to process the mail reading.");
e.printStackTrace();
} catch(FolderClosedException e) {
printData("Not able to process the mail reading.");
e.printStackTrace();
} catch(FolderNotFoundException e) {
printData("Not able to process the mail reading.");
e.printStackTrace();
} catch(NoSuchProviderException e) {
printData("Not able to process the mail reading.");
e.printStackTrace();
} catch(ReadOnlyFolderException e) {
printData("Not able to process the mail reading.");
e.printStackTrace();
} catch(StoreClosedException e) {
printData("Not able to process the mail reading.");
e.printStackTrace();
} catch (Exception e) {
printData("Not able to process the mail reading.");
e.printStackTrace();
}
}

//Main Function for The readEmail Class
public static void main(String args[]) {
//Creating new readEmail Object
readEmails readMail = new readEmails();

//Calling processMail Function to read from IMAP Account
readMail.processMail();
}

}

最佳答案

您正在使用协议(protocol) imap(不带 SSL 的 IMAP)进行连接,GMail 不支持该协议(protocol)。您需要使用 imaps(带 SSL 的 IMAP)。

参见GMail helpJavaMail FAQ entry on GMail

关于java - 无法使用 Java 连接到我的 Gmail 收件箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8078245/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com