JavaMail发送带附件的邮件&&发送一封本地邮件

以下是实现了,JavaMail发送邮件及附件的code.

package com.mail;  
import java.util.Date;  
import java.util.Properties;  
import javax.activation.DataHandler;  
import javax.activation.FileDataSource;  
import javax.mail.Message;  
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 javax.mail.internet.MimeUtility;  
public class Html_File_InnerFile {  
    public static void main(String[] args) throws Exception {  
        Properties props = new Properties();  
        props.put( "mail.smtp.host ", "smtp.qq.com ");  
        props.put("mail.smtp.auth", "true");  
        Session session = Session.getInstance(props);  
        Message message = new MimeMessage(session);  
        InternetAddress from = new InternetAddress("[email protected]");  
        from.setPersonal(MimeUtility.encodeText("new mars<[email protected]>"));  
        message.setFrom(from);  
        InternetAddress to = new InternetAddress("[email protected]");  
        message.setRecipient(Message.RecipientType.TO, to);  
        message.setSubject(MimeUtility.encodeText("测试邀请!"));  
        message.setSentDate(new Date());  
        MimeMultipart msgMultipart = new MimeMultipart("mixed");// 指定为混合关系  
        message.setContent(msgMultipart);  
        // 邮件内容  
        MimeBodyPart htmlPart = new MimeBodyPart();  
        htmlPart.setContent(  
                        "<body>"  
                                + "<div style='position: absolute; left: 390px; top: 150px;height: "  
                                + "100px;width: 200px;' align='center'>"  
                                + "<font color='red'>这是测试邮件,请勿回复</font>" + "</div></body>",  
                        "text/html;charset=UTF-8");  
        // TODO 组装的顺序非常重要,一定要先组装文本域,再组装文件  
        msgMultipart.addBodyPart(htmlPart);  
        // 组装附件  
        MimeBodyPart file = new MimeBodyPart();  
        FileDataSource file_datasource = new FileDataSource("E:\\emailtext.zip");  
        DataHandler dh = new DataHandler(file_datasource);  
        file.setDataHandler(dh);  
        // 附件区别内嵌内容的一个特点是有文件名,为防止中文乱码要编码  
        file.setFileName(MimeUtility.encodeText(dh.getName()));  
        msgMultipart.addBodyPart(file);       
        message.saveChanges();  
        Transport transport = session.getTransport("smtp");  
        transport.connect("smtp.qq.com", 25, "zheng.magic", "123456");  
        transport.sendMessage(message, message.getAllRecipients());  
        transport.close();  
        System.out.println("发送完毕");  
    }  
}  

这里是保存email邮件到本地的code
package com.mail;  
import java.io.File;  
import java.io.FileOutputStream;  
import java.io.OutputStream;  
import java.util.Date;  
import java.util.Properties;  
import javax.mail.Message;  
import javax.mail.Session;  
import javax.mail.internet.InternetAddress;  
import javax.mail.internet.MimeMessage;  
import javax.mail.internet.MimeUtility;  
/** 
 * @说明 保存一个邮件 
 * @author zhengqiang
 * @version 1.0 
 * @since 
 */  
public class TextMail {  
    public static void main(String[] args) throws Exception {  
        Properties props = new Properties();  
        props.put( "mail.smtp.host ", "smtp.qq.com ");  
        props.put("mail.smtp.port", 25);  
        props.put("mail.smtp.auth", "true");  
        Session session = Session.getInstance(props);  
        session.setDebug(true);  
        Message message = new MimeMessage(session);  
        InternetAddress from = new InternetAddress("[email protected]");  
        from.setPersonal(MimeUtility.encodeText("new.mars<[email protected]>"));  
        message.setFrom(from);  
        InternetAddress to = new InternetAddress("[email protected]");  
        message.setRecipient(Message.RecipientType.TO, to);  
        message.setSubject(MimeUtility.encodeText("测试邀请!"));  
        message.setText("强哥邀请你访问我的博客:http://New.Mars.iteye.com/!");  
        message.setSentDate(new Date());  
        // 邮件对象  
        File file = new File("E:\\textmail.eml");  
        // 获得输出流  
        OutputStream ips = new FileOutputStream(file);  
        // 把邮件内容写入到文件  
        message.writeTo(ips);  
        // 关闭流  
        ips.close();          
        System.out.println("发送完毕");  
    }  
}  

好咯,上面是保存email到本地了,
现在嘞。我们就来看下如何发送本地email的邮件啦!
package com.mail;  
import java.io.File;  
import java.io.FileInputStream;  
import java.util.Date;  
import java.util.Properties;  
import javax.mail.Message;  
import javax.mail.Session;  
import javax.mail.Transport;  
import javax.mail.internet.MimeMessage;  
/** 
 * 发送一封本地的邮件 
 * @author [email protected] 
 */  
public class SendCurrentMail {  
    public static void main(String[] args) throws Exception {  
        Properties props = new Properties();  
        props.put("mail.smtp.auth", "true");  
        Session session = Session.getInstance(props);  
        // 现有邮件文件  
        File file = new File("E:\\textmail.eml");  
        FileInputStream fis = new FileInputStream(file);  
        // 创建邮件对象  
        Message message = new MimeMessage(session, fis);  
        message.setSentDate(new Date());          
        message.saveChanges();  
        // 发送邮件  
        Transport transport = session.getTransport("smtp");  
        transport.connect("smtp.qq.com", 25, "zheng.magic", "123456");  
        transport.sendMessage(message, message.getAllRecipients());  
        transport.close();  
        fis.close();  
        System.out.println("发送完毕");  
    }  
}  

猜你喜欢

转载自new-mars.iteye.com/blog/1617987