安卓邮件发送

2019-12-21  本文已影响0人  红茶炒饭

我们今天来做一个安卓的邮件发送

1.准备必要的jar包
所需jar

JavaMail 下载地址: https://github.com/javaee/javamail/releases

实在找不到可以向我要.

2.如果你不再为了第一个条件而苦恼,那么开始接下来的工具类代码
以下这段代码是以腾讯邮箱为例
 private class EmailUtil {

        //使用哪种协议?  通常都是smtp 协议
        /*SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知*/
        private String PROTOCOL = "smtp";

        //qq邮箱的host  如果你用了网易的邮箱 你就填写网易的服务器
        private String HOST = "smtp.qq.com";
        
        //qq邮箱的端口号 ,同理 你用网易的 就用网易的端口号
        //    private String PORT = "465";
        private String PORT = "587";


        // 发件人 也就是你本人的邮箱 你要用哪个邮箱发送呢?
        private String from = "**********@qq.com";
        //授权码
        private String authenticCode = "bb****zgum*****";
        // 收件人  这里我是自己给自己发送邮件,所以目标邮箱也是我自己
        private String to = from;
        // 初始化连接邮件服务器的会话信息
        private Properties props;

        public EmailUtil() {
            props = new Properties();
            props.setProperty("mail.transport.protocol", PROTOCOL);   // 邮件发送协议
            props.setProperty("mail.smtp.host", HOST);   // SMTP邮件服务器
            props.setProperty("mail.smtp.port", PORT);   // SMTP邮件服务器默认端口
            props.setProperty("mail.smtp.auth", "true");   // 是否要求身份认证
            props.setProperty("mail.debug", "true");   // 是否启用调试模式(启用调试模式可打印客户端与服务器交互过程时一问一答的响应消息)
        }

        /**
         * 发送简单的邮件
         *
         * @param text  邮件的文字内容
         * @throws Exception
         */
        public void sendTextEmail(String text) {

            try {
                // 创建Session实例对象
                Session session = Session.getDefaultInstance(props);
                // 创建MimeMessage实例对象
                MimeMessage message = new MimeMessage(session);
                // 设置发件人
                message.setFrom(new InternetAddress(from));
                // 设置邮件主题
                message.setSubject("BUG反馈");
       
                // 设置收件人
                message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
                // 设置发送时间
                message.setSentDate(new Date());
                // 设置纯文本内容为邮件正文
                message.setText(text);
                // 保存并生成最终的邮件内容
                message.saveChanges();
                // 获得Transport实例对象
                Transport transport = session.getTransport();
                // 打开连接
                transport.connect(from, authenticCode);    //邮箱账户,授权码
                // 将message对象传递给transport对象,将邮件发送出去
                transport.sendMessage(message, message.getAllRecipients());    //未执行成功
                // 关闭连接
                transport.close();
            } catch (Exception e) {

            }

        }

    }

获取授权码 必要操作

第一步,登录你的邮箱,点击设置 点击账户 开启

获取 服务器 和端口号

调用

有关网络的不要在主线程操作! 你信不信你不加网络权限也可以用


new Thread(new Runnable() {
            @Override
            public void run() {
                new EmailUtil().sendTextEmail("小老弟你怎么肥子事");
            }
        }).start();

成功咧

这个是java版本的 java是可以用的

上一篇下一篇

猜你喜欢

热点阅读