用apache-mail組件發郵件對比

wangjianme 12年前發布 | 3M 次閱讀 Java Java開發 Mail Apache
import java.net.URL;  
import java.util.Properties;  
  
import javax.activation.DataHandler;  
import javax.activation.FileDataSource;  
import javax.mail.Authenticator;  
import javax.mail.BodyPart;  
import javax.mail.Message;  
import javax.mail.MessagingException;  
import javax.mail.Multipart;  
import javax.mail.PasswordAuthentication;  
import javax.mail.Session;  
import javax.mail.Transport;  
import javax.mail.internet.InternetAddress;  
import javax.mail.internet.MimeBodyPart;  
import javax.mail.internet.MimeMessage;  
import javax.mail.internet.MimeMultipart;  
  
import org.apache.commons.mail.DefaultAuthenticator;  
import org.apache.commons.mail.Email;  
import org.apache.commons.mail.EmailAttachment;  
import org.apache.commons.mail.EmailException;  
import org.apache.commons.mail.HtmlEmail;  
import org.apache.commons.mail.MultiPartEmail;  
import org.apache.commons.mail.SimpleEmail;  
import org.junit.After;  
import org.junit.Before;  
import org.junit.Test;  
  
public class JavaMail {  
    
      
    @Test  
    public void defaultSendMail() throws Exception {  
        String host = "smtp.sina.com";// "smtp.gmail.com"   
        String port = "25"; //"465"  
        Properties props = new Properties();  
        props.setProperty("mail.smtp.host", host);   
        props.setProperty("mail.smtp.port", port);  
        props.setProperty("mail.smtp.auth", "true");  
        props.setProperty("mail.smtp.ssl.enable", "false");//"true"  
        props.setProperty("mail.smtp.connectiontimeout", "5000");  
          
        final String user = "***@sina.com";  //"***@gmail.com"  
        final String pwd = "***";  
        Session session = Session.getDefaultInstance(props, new Authenticator() {  
            @Override  
            protected PasswordAuthentication getPasswordAuthentication() {  
                //登錄用戶名密碼  
                return new PasswordAuthentication(user,pwd);  
            }  
        });  
        session.setDebug(true);  
        Transport transport = session.getTransport("smtp");//"smtps"  
        transport.connect(host,user,pwd);   
        //消息  
        MimeMessage message = new MimeMessage(session);  
          
        setMailContent(message);//。。。。。。。。。。。。。。。。。。  
          
        message.setSubject("郵件標題");  
        //消息發送者接收者設置  
        //message.setFrom(new InternetAddress(user,"發件人名稱"));   
        message.addRecipients(Message.RecipientType.TO,new InternetAddress[]{  
                new InternetAddress("to1@163.com","to1昵稱"),  
                new InternetAddress("to2@163.com","to2昵稱")  
        });  
        message.saveChanges();  
          
        //發送  
        transport.send(message);  
        //Transport.send(message);  
          
        transport.close();    
          
    }  
      
    //設定郵件內容  
    private void setMailContent(MimeMessage message) throws MessagingException {  
        //方法一:只有文本郵件  
        //message.setContent("郵件內容..", "text/plain");//純文本內容  
        //方法二:添加附件的郵件  
        Multipart part = new MimeMultipart();  
          
        BodyPart bodypart1 = new MimeBodyPart();  
        bodypart1.setText("郵件內容");        
        part.addBodyPart(bodypart1 );  
          
        BodyPart bodypart2 = new MimeBodyPart();  
        bodypart2.setFileName("fileName");  
        bodypart2.setDataHandler(new DataHandler(new FileDataSource("f:\\ok.txt")));  
        part.addBodyPart(bodypart2);  
          
        message.setContent(part);  
    }  
  
    @Test  
    public void apacheSendMail() throws Exception {  
        SimpleEmail email = new SimpleEmail();  
        email.setHostName("smtp.gmail.com");  
        email.setSSL(true);  
        email.setSmtpPort(465);  
//      email.setSslSmtpPort("465");  
        email.setTLS(true);//gmail  
        email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com", "***"));  
        email.setFrom("h***@gmail.com");  
        email.setSubject("TestCommonMail");  
        email.setCharset("gbk");  
        //文本郵件  
        email.setMsg("This is a test mail ... :-)");  
          
        email.addTo("**to@qq.com");  
        email.send();   
    }  
  
    @Test  
    public void apacheSendHtmlMail() throws Exception {  
        HtmlEmail email = new HtmlEmail();  
        email.setHostName("smtp.gmail.com");  
        email.setSSL(true);  
        email.setSmtpPort(465);   
        email.setTLS(true);//gmail  
        email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com", "***"));  
        email.setFrom("h***@gmail.com");  
        email.addTo("**to@qq.com");  
        email.setSubject("TestCommonMail");  
        email.setCharset("gbk");  
        //html郵件  
        String cid = email.embed(new URL("http://www.google.com.tw/intl/en_com/images/srpr/logo1w.png"), "google logo");  
        email.setHtmlMsg("<html>The logo - <img src='cid:"+cid+"'></html>");  
          
        email.send();   
    }   
      
      
    @Test  
    public void apacheSendAttachMail() throws Exception {  
        MultiPartEmail email = new MultiPartEmail();  
        email.setHostName("smtp.gmail.com");  
        email.setSSL(true);  
        email.setSmtpPort(465);   
        email.setTLS(true);//gmail  
        email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com", "***"));  
        email.setFrom("h***@gmail.com");  
        email.addTo("**to@qq.com");  
        email.setSubject("TestCommonMail");  
        email.setMsg("This is a test mail ... :-)");  
        email.setCharset("gbk");  
          
        EmailAttachment attach = new EmailAttachment();  
        attach.setName("attachFileName");  
        attach.setPath("f:\\ok.txt");  
        attach.setDescription(EmailAttachment.ATTACHMENT);  
          
          
        email.attach(attach );  
          
        email.send();   
    }   
}  
 本文由用戶 wangjianme 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!