JavaMail 邮件开发

(api  + 配置)

开发中,邮件的应用?

    -à 注册,填写生日;  后期系统会自动发送生日祝贺

         -à 发货,发货提醒!邮件提醒!

邮件:

1. 发邮件;【程序中如何发邮件!】

2. 收邮件;【很多客户端工具, foxmail 】

邮件开发准备:

准备工作, 环境搭建:

1. 本地搭建一个邮件服务器

-à 易邮服务器,eyoumailserversetup.exe

2. 新建邮箱账号

张三给李四发邮件。

步骤1:

新建域名: 工具, 服务器设置, 单域名框中输入 itcast.com

步骤2:

新建邮箱账号:  [email protected]

[email protected]

3. 安装foxmail

配置邮件发送服务器(smtp):  localhost      25

邮件接收服务器(pop3):  localhost     110

再新建账号,就可以接收邮件了!

邮件开发之普通邮件:

JavaMail开发,先引入jar文件:

activation.jar   【如果使用jdk1.6或以上版本,可以不用这个jar文件】

mail.jar       【邮件发送核心包】

/**
 * 1. 发送一封普通邮件
 * @author Jie.Yuan
 *
 */
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("[email protected]"));
        //3.4 接收人
        message.setRecipient(RecipientType.TO, new InternetAddress("[email protected]"));
        //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("[email protected]");
        } 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("[email protected]"));
        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=‘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 Jie.Yuan
 *
 */
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("[email protected]");
        } 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("[email protected]"));
        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=‘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();
    }
}

注意

Java project。

如果是web项目,因为javaee自带的有邮件功能,可能存在问题!

我们要用自己的mail.jar文件功能!  需要删除javaee中mail包!

时间: 2024-10-06 23:26:49

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 pu

Java-Mail邮件开发

Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务. 几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要搞清楚电子邮件是如何在互联网上运作的. 我们来看看传统邮件是如何运作的.假设你现在在北京,要给一个香港的朋友发一封信,怎么做呢? 首先你得写好信,装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去. 信件会从就近的小邮局转运到大邮局,再从大邮局往别的城市发,比如先发到天津,再走海运到达香港,也可能走京九线到香港,但

邮件发送JavaMail的开发

一.邮件开发用到的协议:SMTP.POP.RFC822.MIME SMTP:Simle Message Transfer Protocal 简单消息传输协议.发送邮件时使用的协议.描述了数据该如何表示.默认使用的端口:25 POP:Post Office Protocal邮局协议.接收邮件时使用的协议.默认使用的端口:110 二.手工发送邮件和接收邮件(熟练SMTP等协议的) [email protected]          usst1 [email protected]          

邮件开发一些基础知识

一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu.163等等他们都有自己的邮件服务器. 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中. 电子邮箱(E-Mail地址)的获得需要在邮件服务器上进行申请,确切地说,电子邮箱其实就是用户在邮件服务器上申请的一个账户,用户在邮件服务器上申请了一

【demo】自己写的一个 SpringMail 异步发送邮件的demo。 javamail 邮件异步发送

原文:[demo]自己写的一个 SpringMail 异步发送邮件的demo. javamail 邮件异步发送 源代码下载地址:http://www.zuidaima.com/share/1550463483120640.htm [demo]自己写的一个 SpringMail 异步发送邮件的demo. javamail 邮件异步发送 (注意 配置里面的账号跟发件人账号要一致) 1. 请各位在跑单元测试的时候,在 spring-mail.xml 文件中配置自己的邮箱账号和密码 (我已经注释掉了)

JavaMail邮件发送-能发送附件和带背景音乐的邮件的小系统

原文:JavaMail邮件发送-能发送附件和带背景音乐的邮件的小系统 源代码下载地址:http://www.zuidaima.com/share/1550463633902592.htm 这里使用的是JavaMail技术,前台使用了fckeditor做邮件美化,由于只是示例,后台发送时只是将邮件保存在本地,但是可以查看 由于邮件发送页面使用了fckeditor,使杀毒软件误报,并非木马!fckeditor是官方下载的,请放心使用,如不放心,可自己下载或使用其他编辑器,不妨碍功能使用!

javamail 邮件格式再优化(由详情——&gt;改为统计)

前言:之前扩展的ant-jmeter支持邮件附件形式上传以及邮件内容的html文件格式. 如图: 由于邮件的内容格式是详情信息,也就是说直观的显示的是case,但由于case的增加,邮件内容越来越大! 最主要的是领导们看的不是每条case的执行是否通过,关注度而是每个模块也就是每个module(涉及的所有interface的场景)整体通过率. 开发和测试同学们可以通过附件看出具体失败的case以及原因~ 因此需要修改MailTask类和JavaMail类!!! MailTask类主要做的是对于满

(转)JavaMail邮件发送-发送一个文本邮件和一些问题说明

需要下载的JAR包: JavaMail:http://www.oracle.com/technetwork/java/javamail/index.html JAF:http://www.oracle.com/technetwork/java/javase/downloads/index-135046.html 加入的包有:mail.jar activation.jar 你要准备一个邮箱账户,就用网易的吧,然后打开SMTP功能 关于网易的一些端口信息参考下面: 每个公司都是不一样的,使用SSL的

邮件开发

1.背景:很多web应用在开发的时候都需要集成邮件发送功能:例如新用户注册欢迎邮件: 2.邮件简介: 学习目标: 邮件服务器:邮局: 邮件的发送过程: 邮件的协议(重点): SMTP:Simple Message Transfer Protocal 简单消息传输协议(邮件发送协议) 默认用的端口:25 POP:Post Office Protocal 邮局协议(接收邮件协议) 默认用的端口:110 手工发送邮件: 前提:a.使用telnet发送,必须有telnet客户端   b.准备两个邮箱:[