javaMail发邮件 简单小例子 解决QQ邮箱530 SSL问题

package com;
import java.io.UnsupportedEncodingException;
import java.security.GeneralSecurityException;
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.internet.InternetAddress;


import com.sun.mail.smtp.SMTPMessage;
import com.sun.mail.util.MailSSLSocketFactory;
class SimpleAuthenticator extends Authenticator{
 private String userName;
 private String password;
 public SimpleAuthenticator(String userName, String password) {
 super();
 this.userName = userName;
 this.password = password;
 }
 public PasswordAuthentication getPasswordAuthentication() {      
         return new PasswordAuthentication(this.userName, this.password);  
   
     }  
}
public class MailTest {
 public static void sendMail() throws UnsupportedEncodingException, GeneralSecurityException{
 String userName = "[email protected]";
 String password="xxxx";
 String subject = "发邮件进行测1111111试"; // 邮件标题
     String body = "怎么样 可以112222222了没!"; // 邮件内容
     Properties props=System.getProperties();
     MailSSLSocketFactory sf = new MailSSLSocketFactory();  
     sf.setTrustAllHosts(true);  
     props.put("mail.smtp.host", "smtp.qq.com");
     props.put("mail.smtp.auth","true");
     props.put("mail.smtp.socketFactory.port", 465);
     props.put("mail.smtp.starttls.enable","true");
     props.put("mail.smtp.ssl.socketFactory", sf); 
     props.put("mail.smtp.starttls.enable", "true");
     props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
     // props.setProperty("mail.smtp.port", "465");
    // Session session=Session.getDefaultInstance(props);
     Session session = Session.getDefaultInstance(props,new SimpleAuthenticator(userName, password)	);
     session.setDebug(true);
     SMTPMessage message=new SMTPMessage(session);
     try {
    	message.setRecipient(Message.RecipientType.TO,new InternetAddress("[email protected]"));//收件人
    	message.setSubject(subject);
 message.setText(body);
 String nickName="王大锤";
 nickName=javax.mail.internet.MimeUtility.encodeText(nickName); 
 message.setFrom(new InternetAddress(nickName+" <[email protected]>"));//设置发件人 发件人必须要和Authenticator验证的帐号一致
 Transport transport = session.getTransport("smtp");
 transport.connect(userName, password);
 transport.send(message);
 transport.close();
 } catch (MessagingException e) {
 e.printStackTrace();
 }
 }
 public static void main(String[] args)  {
 try {
 MailTest.sendMail();
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
}

你可能感兴趣的:(javamail,sendmail,发邮件)