代码如下:
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class RetirveMail {
private Properties props;
private Session session;
private MimeMessage[] message;
public RetirveMail()
{
props = System.getProperties();
props.put("mial.store.protocol","imap");
session = Session.getDefaultInstance(props, null);
}
public void getStore()
{
try{
Store store=session.getStore("imap");
store.connect("imap.qq.com", "********", "*****");
Folder folder = store.getFolder("INBOX");
folder.open(folder.READ_ONLY);
int i = folder.getMessageCount() ;
System.out.println(i);
}
catch (Exception e)
{
System.out.println(e);
}
}
public void printmessage()
{
try{
System.out.println(message[0].getSubject());}
catch(Exception e)
{
}
}
}红色的部分是出错的部分,好像连接不上QQMAIL的服务器,我尝试过用THUNDERBIRD,可以顺利连接服务器,但是用JAVAMAIL就不能连接,不知道是不是我的代码有问题?
抛出的异常是:javax.mail.AuthenticationFailedException: no mechanism available
希望有人能帮忙解答下,谢谢~
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class RetirveMail {
private Properties props;
private Session session;
private MimeMessage[] message;
public RetirveMail()
{
props = System.getProperties();
props.put("mial.store.protocol","imap");
session = Session.getDefaultInstance(props, null);
}
public void getStore()
{
try{
Store store=session.getStore("imap");
store.connect("imap.qq.com", "********", "*****");
Folder folder = store.getFolder("INBOX");
folder.open(folder.READ_ONLY);
int i = folder.getMessageCount() ;
System.out.println(i);
}
catch (Exception e)
{
System.out.println(e);
}
}
public void printmessage()
{
try{
System.out.println(message[0].getSubject());}
catch(Exception e)
{
}
}
}红色的部分是出错的部分,好像连接不上QQMAIL的服务器,我尝试过用THUNDERBIRD,可以顺利连接服务器,但是用JAVAMAIL就不能连接,不知道是不是我的代码有问题?
抛出的异常是:javax.mail.AuthenticationFailedException: no mechanism available
希望有人能帮忙解答下,谢谢~
import java.util.Properties;import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;public class MyEmail {
//发件人邮箱的用户名和密码
private static final String SEND_EMAIL = "******";//发件人邮箱地址
private static final String SEND_EMAIL_PASSWORD = "******";//发件人邮箱密码
private static final String SEND_EMAIL_ACCOUNT = "******";//发件人邮箱账户名
private static final String SEND_SMTP = "smtp.gmail.com";//SMTP
private static final String SMTP_PORT = "465";//SMTP端口
private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
private static final String RECEIVE_EMAIL = "******";//收件人地址
public static void main(String[] args) throws AddressException,
MessagingException {
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", SEND_SMTP);// 服务主机地址
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", SMTP_PORT);// 端口
props.setProperty("mail.smtp.socketFactory.port", SMTP_PORT);
props.put("mail.smtp.auth", "true");// 是否要验证身份
// 验证用户名和密码
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(SEND_EMAIL, SEND_EMAIL_PASSWORD);
}
});
Message msg = new MimeMessage(session); // 发送邮件地址
msg.setFrom(new InternetAddress(SEND_EMAIL));
// 接受邮件地址
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(RECEIVE_EMAIL, false));
msg.setSubject("测试邮件是否发送成功!");
msg.setText("测试,测试,测试,测试,测试,测试,测试,测试,测试,测试,测试,!!!!!!!!!!");
msg.setSentDate(new Date());
URLName urln = new URLName("smtp", SEND_SMTP, Integer.valueOf(SMTP_PORT).intValue(), null,
SEND_EMAIL_ACCOUNT, SEND_EMAIL_PASSWORD);
Transport t = session.getTransport(urln);
t.send(msg); System.out.println("邮件发送成功!");
}
}
PROPS.PUT("MAIL.IMAP.AUTH.PLAIN.DISABLE","TRUE")即可。。
发送邮件不牵扯到IMAP的问题啊