源代码下载 http://download.csdn.net/download/cluolin/3493077
使用QQ发邮件先开通自己的POP3/IMAP/SMTP/Exchange服务
需要jar包:activation.jar,commons-logging-1.0.4.jar,mail.jar,spring.jar
public class Mail {
public static void main(String[] args) {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.qq.com");
props.put("mail.smtp.auth", "true");
try {
PopupAuthenticator auth = new PopupAuthenticator();
Session session = Session.getInstance(props, auth);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
Address addressFrom = new InternetAddress(
PopupAuthenticator.mailuser + "@qq.com", "烂帽子!");
Address addressTo = new InternetAddress("105489*****@qq.com", "LUO");
message.setText("哈哈!烂帽子!");
message.setSubject("Test sent Mail by javaMail");
message.setFrom(addressFrom);
message.addRecipient(Message.RecipientType.TO, addressTo);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect("smtp.qq.com", PopupAuthenticator.mailuser,
PopupAuthenticator.password);
transport.send(message);
transport.close();
System.out.println("sent suc");
} catch (Exception e) {
System.out.println(e.toString());
System.out.println("sent fail");
}
}
}
class PopupAuthenticator extends Authenticator {
public static final String mailuser = "857*******";
public static final String password = "liu****";
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(mailuser, password);
}
}
测试自己的QQ也收到的邮件
控制台打印信息
DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.qq.com", port 25, isSSL false
220 smtp.qq.com Esmtp QQ Mail Server
DEBUG SMTP: connected to host "smtp.qq.com", port: 25
EHLO 20110424-1659
250-smtp.qq.com
250-PIPELINING
250-SIZE 52428800
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN
250-MAILCOMPRESS
250 8BITMIME
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "SIZE", arg "52428800"
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN"
DEBUG SMTP: Found extension "AUTH=LOGIN", arg ""
DEBUG SMTP: Found extension "MAILCOMPRESS", arg ""
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Attempt to authenticate
AUTH LOGIN
334 VXNlcm5hbWU6
ODU3MjM1NTg1
334 UGFzc3dvcmQ6
bGl1ZmVpNDUzMw==
235 Authentication successful
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.qq.com", port 25, isSSL false
220 smtp.qq.com Esmtp QQ Mail Server
DEBUG SMTP: connected to host "smtp.qq.com", port: 25
EHLO 20110424-1659
250-smtp.qq.com
250-PIPELINING
250-SIZE 52428800
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN
250-MAILCOMPRESS
250 8BITMIME
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "SIZE", arg "52428800"
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN"
DEBUG SMTP: Found extension "AUTH=LOGIN", arg ""
DEBUG SMTP: Found extension "MAILCOMPRESS", arg ""
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Attempt to authenticate
AUTH LOGIN
334 VXNlcm5hbWU6
ODU3MjM1NTg1
334 UGFzc3dvcmQ6
bGl1ZmVpNDUzMw==
235 Authentication successful
DEBUG SMTP: use8bit false
MAIL FROM:<8572******@qq.com>
250 Ok
RCPT TO:<1054*******@qq.com>
250 Ok
DEBUG SMTP: Verified Addresses
DEBUG SMTP: LUO <1054896261@qq.com>
DATA
354 End data with <CR><LF>.<CR><LF>
From: =?GBK?B?wMPDsdfTo6E=?= <8572******5@qq.com>
To: LUO <1054******@qq.com>
Message-ID: <9605638.11363264801812.JavaMail.Administrator@20110424-1659>
Subject: Test sent Mail by javaMail
MIME-Version: 1.0
Content-Type: text/plain; charset=GBK
Content-Transfer-Encoding: base64
uf65/qOhwMPDsdfTo6E=
.
250 Ok: queued as
QUIT
221 Bye
QUIT
221 Bye
sent suc