首页 > 技术文章 > 使用java向邮箱发送邮件

dtj007 2016-01-08 16:46 原文

 这是我很早之前写的一个工具类,最近在整理自己所学的东西,无意中找到了,就拿出来与大家分享,代码如下:

import java.io.ByteArrayOutputStream;   
import java.io.FileInputStream;   
import java.io.IOException;   
import java.util.Arrays;   
import java.util.Date;   
import java.util.Properties;   
  



import javax.activation.DataHandler;   
import javax.activation.FileDataSource;   
import javax.mail.Authenticator;   
import javax.mail.Message;   
import javax.mail.PasswordAuthentication;   
import javax.mail.Session;   
import javax.mail.Transport;   
import javax.mail.internet.InternetAddress;   
import javax.mail.internet.MimeMessage;   
  
import javax.mail.BodyPart;   
import javax.mail.Multipart;   
import javax.mail.internet.MimeBodyPart;   
import javax.mail.internet.MimeMultipart;   

import org.apache.struts.util.MessageResources;

import com.qq.connect.javabeans.tenpay.Address;

//import com.sun.istack.internal.ByteArrayDataSource;  
public class SendMails {
       public  int sendMail(String emailTitle, String content, String emailTo,MessageResources message) throws Exception {
        System.out.println(smtpServer1);
        Properties props = new Properties();   
        props.put("mail.smtp.auth", "true"); 
        props.put( "mail.transport.protocol", "smpt");
        props.put("mail.smtp.host", smtpServer1);
        // 获得邮件会话对象   
        Session session = Session.getInstance(props,new SmtpAuthenticator1(fromMailAddress1, password1));  
        /** *************************************************** */  
        // 创建MIME邮件对象   
        MimeMessage mimeMessage = new MimeMessage(session);   
        mimeMessage.setFrom(new InternetAddress(fromMailAddress1));// 发件人   
        mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(emailTo));// 收件人   
        mimeMessage.setSubject(emailTitle);   
        mimeMessage.setSentDate(new Date());// 发送日期   
        Multipart mp = new MimeMultipart("related");// related意味着可以发送html格式的邮件   
        /** *************************************************** */  
        BodyPart bodyPart = new MimeBodyPart();// 正文   
       StringBuffer content = new StringBuffer();  
         bodyPart.setDataHandler(new DataHandler(content.toString(),"text/html;charset=GBK"));// 网页格式   
               /** *************************************************** */  
//        BodyPart attachBodyPart = new MimeBodyPart();// 普通附件   
//        FileDataSource fds = new FileDataSource("c:/boot.ini");   
//        attachBodyPart.setDataHandler(new DataHandler(fds));   
//        attachBodyPart.setFileName("=?GBK?B?"+ new sun.misc.BASE64Encoder().encode(fds.getName().getBytes()) + "?=");// 解决附件名中文乱码   
//        mp.addBodyPart(attachBodyPart);   
        /** *************************************************** */  
//        MimeBodyPart imgBodyPart = new MimeBodyPart(); // 附件图标   
//        byte[] bytes = readFile("E:/webcms/webcms/WebContent/images/bjx.jpg");   
//        ByteArrayDataSource fileds = new ByteArrayDataSource(bytes,"application/octet-stream");   
//        imgBodyPart.setDataHandler(new DataHandler(fileds));   
//        imgBodyPart.setFileName("button.gif");   
//        imgBodyPart.setHeader("Content-ID", "<IMG1></IMG1>");// 在html中使用该图片方法src="cid:IMG1"   
//        mp.addBodyPart(imgBodyPart);   
        /** *************************************************** */  
        mp.addBodyPart(bodyPart);
        mimeMessage.setContent(mp);//设置邮件内容对象
        try {
            Transport.send(mimeMessage);//发送邮件
//            Transport transport=session.getTransport();
//            transport.send(mimeMessage);
} catch (Exception e) {
//     e.printStackTrace();
if(e.getMessage().contains("550 User not found")){
return 2;
}else{
return 3;
}
}
        //system.out.println("SendEmail OK!!");
        return 0;
    }  
public void setUsername1(String username1) {
this.username1 = username1;
}
public void setPassword1(String password1) {
this.password1 = password1;
}
public void setSmtpServer1(String smtpServer1) {
this.smtpServer1 = smtpServer1;
}

public void setFromMailAddress1(String fromMailAddress1) {
this.fromMailAddress1 = fromMailAddress1;
}
 public static byte[] readFile(String file) {   
        FileInputStream fis = null;   
        ByteArrayOutputStream bos = null;   
        try {   
            fis = new FileInputStream(file);   
            bos = new ByteArrayOutputStream();   
            int bytesRead;   
            byte buffer[] = new byte[1024 * 1024];   
            while ((bytesRead = fis.read(buffer)) != -1) {   
                bos.write(buffer, 0, bytesRead);   
                Arrays.fill(buffer, (byte) 0);   
            }   
        } catch (IOException e1) {   
            e1.printStackTrace();   
        } finally {   
            try {   
                if (bos != null)   
                    bos.close();   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
        return bos.toByteArray();   
    } 
}
/**  
 * Smtp认证  
 */  
class SmtpAuthenticator1 extends Authenticator {   
    String username = null;   
    String password = null;   
  
    // SMTP身份验证   
    public SmtpAuthenticator1(String username, String password) {   
        this.username = username;   
        this.password = password;   
        System.out.println(username+"::::::"+password);
    }   
  
    public PasswordAuthentication getPasswordAuthentication() {   
        return new PasswordAuthentication(this.username, this.password);   
    }   

}

 

推荐阅读