首页 > 代码库 > JavaMail邮件开发

JavaMail邮件开发

 

普通邮件

JavaMail开发,先引入jar文件:    activation.jar   【如果使用jdk1.6或以上版本,可以不用这个jar文件】    mail.jar       【邮件发送核心包】

 

注意

注意Java project。如果是web项目,因为javaee自带的有邮件功能,可能存在问题!我们要用自己的mail.jar文件功能!  需要删除javaee中mail包!

 

/** * 1. 发送一封普通邮件 * @author  */public class App_SendMail {    @Test    public void testSend() throws Exception {                //0. 邮件参数        Properties prop = new Properties();        prop.put("mail.transport.protocol", "smtp");    // 指定协议        prop.put("mail.smtp.host", "localhost");        // 主机   stmp.qq.com        prop.put("mail.smtp.port", 25);                    // 端口        prop.put("mail.smtp.auth", "true");                // 用户密码认证        prop.put("mail.debug", "true");                    // 调试模式                //1. 创建一个邮件的会话        Session session = Session.getDefaultInstance(prop);        //2. 创建邮件体对象 (整封邮件对象)        MimeMessage message = new MimeMessage(session);        //3. 设置邮件体参数:         //3.1 标题        message.setSubject("我的第一封邮件    ");        //3.2 邮件发送时间        message.setSentDate(new Date());        //3.3 发件人        message.setSender(new InternetAddress("zhangsan@123.com"));        //3.4 接收人        message.setRecipient(RecipientType.TO, new InternetAddress("lisi@123.com"));        //3.5内容        message.setText("你好,已经发送成功!  正文....");  // 简单纯文本邮件        message.saveChanges();   // 保存邮件(可选)                //4. 发送        Transport trans = session.getTransport();        trans.connect("zhangsan", "888");        // 发送邮件        trans.sendMessage(message, message.getAllRecipients());        trans.close();    }}

 

邮件带图片

/** * 带图片资源的邮件 * @author Jie.Yuan * */public class App_2SendWithImg {        // 初始化参数    private static Properties prop;    // 发件人    private static InternetAddress sendMan = null;    static {        prop = new Properties();        prop.put("mail.transport.protocol", "smtp");    // 指定协议        prop.put("mail.smtp.host", "localhost");        // 主机   stmp.qq.com        prop.put("mail.smtp.port", 25);                    // 端口        prop.put("mail.smtp.auth", "true");                // 用户密码认证        prop.put("mail.debug", "true");                    // 调试模式        try {            sendMan = new InternetAddress("zhangsan@itcast.com");        } catch (AddressException e) {            throw new RuntimeException(e);        }    }    @Test    public void testSend() throws Exception {        // 1. 创建邮件会话        Session session = Session.getDefaultInstance(prop);        // 2. 创建邮件对象        MimeMessage message = new MimeMessage(session);        // 3. 设置参数:标题、发件人、收件人、发送时间、内容        message.setSubject("带图片邮件");        message.setSender(sendMan);        message.setRecipient(RecipientType.TO, new InternetAddress("lisi@itcast.com"));        message.setSentDate(new Date());                /***************设置邮件内容: 多功能用户邮件 (related)*******************/        // 4.1 构建一个多功能邮件块        MimeMultipart related = new MimeMultipart("related");        // 4.2 构建多功能邮件块内容 = 左侧文本 + 右侧图片资源        MimeBodyPart content = new MimeBodyPart();        MimeBodyPart resource = new MimeBodyPart();                // 设置具体内容: a.资源(图片)        String filePath = App_2SendWithImg.class.getResource("8.jpg").getPath();        DataSource ds = new FileDataSource(new File(filePath));        DataHandler handler = new DataHandler(ds);        resource.setDataHandler(handler);        resource.setContentID("8.jpg");   // 设置资源名称,给外键引用                // 设置具体内容: b.文本        content.setContent("<img src=http://www.mamicode.com/‘cid:8.jpg‘/>  好哈哈!", "text/html;charset=UTF-8");                related.addBodyPart(content);        related.addBodyPart(resource);                /*******4.3 把构建的复杂邮件快,添加到邮件中********/        message.setContent(related);                        // 5. 发送        Transport trans = session.getTransport();        trans.connect("zhangsan", "888");        trans.sendMessage(message, message.getAllRecipients());        trans.close();    }}

 

邮件中 图片+附件

/** * 3. 带图片资源以及附件的邮件 * @author  * */public class App_3ImgAndAtta {        // 初始化参数    private static Properties prop;    // 发件人    private static InternetAddress sendMan = null;    static {        prop = new Properties();        prop.put("mail.transport.protocol", "smtp");    // 指定协议        prop.put("mail.smtp.host", "localhost");        // 主机   stmp.qq.com        prop.put("mail.smtp.port", 25);                    // 端口        prop.put("mail.smtp.auth", "true");                // 用户密码认证        prop.put("mail.debug", "true");                    // 调试模式        try {            sendMan = new InternetAddress("zhangsan@123.com");        } catch (AddressException e) {            throw new RuntimeException(e);        }    }    @Test    public void testSend() throws Exception {        // 1. 创建邮件会话        Session session = Session.getDefaultInstance(prop);        // 2. 创建邮件对象        MimeMessage message = new MimeMessage(session);        // 3. 设置参数:标题、发件人、收件人、发送时间、内容        message.setSubject("带图片邮件");        message.setSender(sendMan);        message.setRecipient(RecipientType.TO, new InternetAddress("lisi@123.com"));        message.setSentDate(new Date());                /*         * 带附件(图片)邮件开发         */        // 构建一个总的邮件块        MimeMultipart mixed = new MimeMultipart("mixed");        // ---> 总邮件快,设置到邮件对象中        message.setContent(mixed);        // 左侧: (文本+图片资源)        MimeBodyPart left = new MimeBodyPart();        // 右侧: 附件        MimeBodyPart right = new MimeBodyPart();        // 设置到总邮件块        mixed.addBodyPart(left);        mixed.addBodyPart(right);                /******附件********/        String attr_path = this.getClass().getResource("a.docx").getPath();        DataSource attr_ds = new FileDataSource(new File(attr_path));        DataHandler attr_handler = new DataHandler(attr_ds);        right.setDataHandler(attr_handler);        right.setFileName("a.docx");                        /***************设置邮件内容: 多功能用户邮件 (related)*******************/        // 4.1 构建一个多功能邮件块        MimeMultipart related = new MimeMultipart("related");        // ----> 设置到总邮件快的左侧中        left.setContent(related);                // 4.2 构建多功能邮件块内容 = 左侧文本 + 右侧图片资源        MimeBodyPart content = new MimeBodyPart();        MimeBodyPart resource = new MimeBodyPart();                // 设置具体内容: a.资源(图片)        String filePath = App_3ImgAndAtta.class.getResource("8.jpg").getPath();        DataSource ds = new FileDataSource(new File(filePath));        DataHandler handler = new DataHandler(ds);        resource.setDataHandler(handler);        resource.setContentID("8.jpg");   // 设置资源名称,给外键引用                // 设置具体内容: b.文本        content.setContent("<img src=http://www.mamicode.com/‘cid:8.jpg‘/>  好哈哈!", "text/html;charset=UTF-8");                related.addBodyPart(content);        related.addBodyPart(resource);                                // 5. 发送        Transport trans = session.getTransport();        trans.connect("zhangsan", "888");        trans.sendMessage(message, message.getAllRecipients());        trans.close();    }}

 

JavaMail邮件开发