无法连接到邮件存储javax.mail.AuthenticationFailedException:[AUTH]用户名和密码不被接受
你好,我正试着 使用JavaMail下载电子邮件中的附件 本网站的参考资料: 但是,我得到以下错误:无法连接到邮件存储javax.mail.AuthenticationFailedException:[AUTH]用户名和密码不被接受,java,jakarta-mail,Java,Jakarta Mail,你好,我正试着 使用JavaMail下载电子邮件中的附件 本网站的参考资料: 但是,我得到以下错误: Could not connect to the message store javax.mail.AuthenticationFailedException: [AUTH] Username and password not accepted. 代码如下: public class EmailAttachmentReceiver { private String saveDirector
Could not connect to the message store javax.mail.AuthenticationFailedException: [AUTH] Username and password not accepted.
代码如下:
public class EmailAttachmentReceiver {
private String saveDirectory;
/**
* Sets the directory where attached files will be stored.
* @param dir absolute path of the directory
*/
public void setSaveDirectory(String dir) {
this.saveDirectory = dir;
}
/**
* Downloads new messages and saves attachments to disk if any.
* @param host
* @param port
* @param userName
* @param password
*/
public void downloadEmailAttachments(String host, String port,
String userName, String password) {
Properties properties = new Properties();
// server setting
properties.put("mail.pop3.host", host);
properties.put("mail.pop3.port", port);
// SSL setting
properties.setProperty("mail.pop3.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.pop3.socketFactory.fallback", "false");
properties.setProperty("mail.pop3.socketFactory.port",
String.valueOf(port));
Session session = Session.getDefaultInstance(properties);
try {
// connects to the message store
Store store = session.getStore("pop3");
store.connect(userName, password);
// opens the inbox folder
Folder folderInbox = store.getFolder("INBOX");
folderInbox.open(Folder.READ_ONLY);
// fetches new messages from server
Message[] arrayMessages = folderInbox.getMessages();
for (int i = 0; i < arrayMessages.length; i++) {
Message message = arrayMessages[i];
Address[] fromAddress = message.getFrom();
String from = fromAddress[0].toString();
String subject = message.getSubject();
String sentDate = message.getSentDate().toString();
String contentType = message.getContentType();
String messageContent = "";
// store attachment file name, separated by comma
String attachFiles = "";
if (contentType.contains("multipart")) {
// content may contain attachments
Multipart multiPart = (Multipart) message.getContent();
int numberOfParts = multiPart.getCount();
for (int partCount = 0; partCount < numberOfParts; partCount++) {
MimeBodyPart part = (MimeBodyPart)
multiPart.getBodyPart(partCount);
if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) {
// this part is attachment
String fileName = part.getFileName();
attachFiles += fileName + ", ";
part.saveFile(saveDirectory + File.separator + fileName);
} else {
// this part may be the message content
messageContent = part.getContent().toString();
}
}
if (attachFiles.length() > 1) {
attachFiles = attachFiles.substring(0, attachFiles.length() - 2);
}
} else if (contentType.contains("text/plain")
|| contentType.contains("text/html")) {
Object content = message.getContent();
if (content != null) {
messageContent = content.toString();
}
}
// print out details of each message
System.out.println("Message #" + (i + 1) + ":");
System.out.println("\t From: " + from);
System.out.println("\t Subject: " + subject);
System.out.println("\t Sent Date: " + sentDate);
System.out.println("\t Message: " + messageContent);
System.out.println("\t Attachments: " + attachFiles);
}
// disconnect
folderInbox.close(false);
store.close();
} catch (NoSuchProviderException ex) {
System.out.println("No provider for pop3.");
ex.printStackTrace();
} catch (MessagingException ex) {
System.out.println("Could not connect to the message store");
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* Runs this program with Gmail POP3 server
*/
public static void main(String[] args) {
String host = "pop.gmail.com";
String port = "995";
String userName = "your_email";
String password = "your_password";
String saveDirectory = "E:/Attachment";
EmailAttachmentReceiver receiver = new EmailAttachmentReceiver();
receiver.setSaveDirectory(saveDirectory);
receiver.downloadEmailAttachments(host, port, userName, password);
}
}
公共类EmailAttachmentReceiver{
私有字符串保存目录;
/**
*设置存储附加文件的目录。
*@param dir目录的绝对路径
*/
公共void setSaveDirectory(字符串目录){
this.saveDirectory=dir;
}
/**
*下载新邮件并将附件保存到磁盘(如果有)。
*@param主机
*@param端口
*@param用户名
*@param密码
*/
public void downloadEmailAttachments(字符串主机、字符串端口、,
字符串用户名、字符串密码){
属性=新属性();
//服务器设置
properties.put(“mail.pop3.host”,host);
properties.put(“mail.pop3.port”,port);
//SSL设置
properties.setProperty(“mail.pop3.socketFactory.class”,
“javax.net.ssl.SSLSocketFactory”);
properties.setProperty(“mail.pop3.socketFactory.fallback”、“false”);
properties.setProperty(“mail.pop3.socketFactory.port”,
字符串.valueOf(port));
Session Session=Session.getDefaultInstance(属性);
试一试{
//连接到消息存储
Store Store=session.getStore(“pop3”);
store.connect(用户名、密码);
//打开收件箱文件夹
Folder folderInbox=store.getFolder(“收件箱”);
folderInbox.open(文件夹只读);
//从服务器获取新邮件
Message[]arrayMessages=folderInbox.getMessages();
for(int i=0;i1){
attachFiles=attachFiles.substring(0,attachFiles.length()-2);
}
}else if(contentType.contains(“text/plain”)
||contentType.contains(“text/html”)){
对象内容=message.getContent();
如果(内容!=null){
messageContent=content.toString();
}
}
//打印出每封邮件的详细信息
System.out.println(“消息#”+(i+1)+“:”;
System.out.println(“\t-From:”+From);
System.out.println(“\t主题:“+主题”);
System.out.println(“\t发送日期:“+sentDate”);
System.out.println(“\t Message:+messageContent”);
System.out.println(“\t附件:“+attachFiles”);
}
//断开
folderInbox.close(假);
store.close();
}捕获(无此提供异常例外){
System.out.println(“pop3没有提供程序”);
例如printStackTrace();
}捕获(消息例外){
System.out.println(“无法连接到消息存储”);
例如printStackTrace();
}捕获(IOEX异常){
例如printStackTrace();
}
}
/**
*使用Gmail POP3服务器运行此程序
*/
公共静态void main(字符串[]args){
String host=“pop.gmail.com”;
字符串端口=“995”;
String userName=“您的电子邮件”;
String password=“您的密码”;
字符串saveDirectory=“E:/Attachment”;
EmailAttachmentReceiver receiver=新的EmailAttachmentReceiver();
receiver.setSaveDirectory(saveDirectory);
receiver.downloadEmailAttachments(主机、端口、用户名、密码);
}
}
首先,纠正这些错误
显然,服务器认为您提供了错误的用户名和密码。如果您打开,您可能会发现服务器认为错误的更多线索。您可能还需要将“mail.debug.auth”属性设置为“true”,以查看完整的身份验证协议交换。import com.packaging.dbconnection.Database;
import com.packaging.dbconnection.Database;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.mail.Address;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.NoSuchProviderException;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.search.FromTerm;
import javax.mail.search.SearchTerm;
/**
* This program demonstrates how to download e-mail messages and save
* attachments into files on disk.
*
* @author www.codejava.net
*
*/
public class EmailAttachmentReceiver {
private String saveDirectory;
/*vxcvxcv*/
/**
* Sets the directory where attached files will be stored.
* @param dir absolute path of the directory
*/
public void setSaveDirectory(String dir) {
this.saveDirectory = dir;
}
/**
* Downloads new messages and saves attachments to disk if any.
* @param host
* @param port
* @param userName
* @param password
*/
public void downloadEmailAttachments(String host, String port,
String userName, String password) {
PreparedStatement pst;
ResultSet rs;
Properties properties = new Properties();
properties.setProperty("mail.store.protocol", "imaps");
//session reading
// server setting
// properties.put("mail.pop3.host", host);
// properties.put("mail.pop3.port", port);
// SSL setting
// properties.setProperty("mail.pop3.socketFactory.class",
// "javax.net.ssl.SSLSocketFactory");
// properties.setProperty("mail.pop3.socketFactory.fallback", "false");
// properties.setProperty("mail.pop3.socketFactory.port",
// String.valueOf(port));
try {
// connects to the message store
Session session = Session.getDefaultInstance(properties);
Store store = session.getStore();
//store.connect(userName, password);
store.connect("imap.gmail.com", "yourmail@gmail.com", "yourpass");
//Folder inbox = store.getFolder("INBOX");
// inbox.open(Folder.READ_ONLY);
// opens the inbox folder
Folder folderInbox = store.getFolder("INBOX");
folderInbox.open(Folder.READ_ONLY);
// fetches new messages from server
SearchTerm sender = new FromTerm(new InternetAddress("xyz@gmail.com"));
// Message[] messages = inbox.search(sender);
Message[] arrayMessages = folderInbox.search(sender);
for (int i = 0; i < arrayMessages.length; i++) {
Message message = arrayMessages[i];
Address[] fromAddress = message.getFrom();
String from = fromAddress[0].toString();
String subject = message.getSubject();
String sentDate = message.getSentDate().toString();
String contentType = message.getContentType();
String messageContent = "";
// store attachment file name, separated by comma
String attachFiles = "";
if (contentType.contains("multipart")) {
// content may contain attachments
Multipart multiPart = (Multipart) message.getContent();
int numberOfParts = multiPart.getCount();
for (int partCount = 0; partCount < numberOfParts; partCount++) {
MimeBodyPart part = (MimeBodyPart) multiPart.getBodyPart(partCount);
if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) {
// this part is attachment
String fileName = part.getFileName();
attachFiles += fileName + ", ";
part.saveFile(saveDirectory + File.separator + fileName);
} else {
// this part may be the message content
messageContent = part.getContent().toString();
}
}
if (attachFiles.length() > 1) {
attachFiles = attachFiles.substring(0, attachFiles.length() - 2);
}
} else if (contentType.contains("text/plain")
|| contentType.contains("text/html")) {
Object content = message.getContent();
if (content != null) {
messageContent = content.toString();
}
}
// print out details of each message
System.out.println("Message " + (i + 1) + ":");
System.out.println("\t From: " + from);
System.out.println("\t Subject: " + subject);
System.out.println("\t Recieved Date: " + sentDate);
System.out.println("\t Message: " + messageContent);
System.out.println("\t Attachments: " + attachFiles);
try{
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/dbname";
String user="root";
String pass="";
Class.forName(driver);
Connection con=DriverManager.getConnection(url,user,pass);
pst=con.prepareStatement("insert into applications() VALUES (?,?,?,?,?)");
pst.setString(1,i+"1");
pst.setString(2,from);
pst.setString(3,subject);
pst.setString(4,sentDate);
pst.setString(5,attachFiles);
int j = pst.executeUpdate();
if(con!=null){
System.out.println("connected");
}
}
catch (ClassNotFoundException ex) {
Logger.getLogger(EmailAttachmentReceiver.class.getName()).log(Level.SEVERE, null, ex);
}
catch (SQLException ex) {
Logger.getLogger(EmailAttachmentReceiver.class.getName()).log(Level.SEVERE, null, ex);
}
}
// disconnect
folderInbox.close(false);
store.close();
} catch (NoSuchProviderException ex) {
System.out.println("No provider for pop3.");
ex.printStackTrace();
} catch (MessagingException ex) {
System.out.println("Could not connect to the message store");
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* Runs this program with Gmail POP3 server
*/
public static void main(String[] args) {
String host = "pop.gmail.com";
String port = "995";
String userName = "yourmail@gmail.com";
String password = "yourpass";
String saveDirectory = "D:/Attachment";
EmailAttachmentReceiver receiver = new EmailAttachmentReceiver();
receiver.setSaveDirectory(saveDirectory);
receiver.downloadEmailAttachments(host, port, userName, password);
}
}
导入java.io.File;
导入java.io.IOException;
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.PreparedStatement;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.util.Properties;
导入java.util.logging.Level;
导入java.util.logging.Logger;
导入javax.mail.Address;
导入javax.mail.Folder;
导入javax.mail.Message;
导入javax.mail.MessaginException;
导入javax.mail.Multipart;
导入javax.mail.NoSuchProviderException;
导入javax.mail.Part;
导入javax.mail.Session;
导入javax.mail.Store;
导入javax.mail.internet.InternetAddress;
导入javax.mail.internet.MimeBodyPart;
导入javax.mail