Android使用mail库发送邮件(后台发送,不调用本地APP)

这篇博客分享了如何在Android应用中实现后台发送邮件,避免调用其他APP,提高用户体验。通过引入sun公司的javax.mail开源库,详细介绍了配置、代码实现及测试过程,包括邮件实体类、密码认证器和邮件发送工具类的创建。注意,部分邮箱可能需要设置授权码,并且发送HTML邮件时需确保内容格式正确。文章最后提到了可能出现的网络权限问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天接到一个任务:在Android端实现邮箱注册账号的功能,so决定先实现一个邮件发送器。下面是实现该demo的具体步骤,在此分享出来。

在Andoird中,实现发送邮件主要有两种方式:

  1. 调用其他APP(QQ邮箱、gmail邮箱、自带邮箱等)。
  2. 直接使用第三方服务器发送邮件。(就是直接使用QQ邮箱它们的服务器)。

如果使用第一种方式实现的话,需要有其他APP的支持,用户体验极差。在本文中,将使用第三方服务器(163邮箱)进行邮件发送APP的实现。

首先,使用sun公司开源的支持android端发送邮件的开源库。导入方法如下:

compile 'com.sun.mail:android-mail:1.6.0'
compile 'com.sun.mail:android-activation:1.6.0'

主要代码如下:

邮件实体类:

import java.util.Properties;

    public class MailSender {
   
        private String mailServerHost;  //发送邮件的服务器IP
        private String mailServerPort; //发送邮件的服务器端口
        private String username;    //邮件服务器用户名
        private String password;    //邮件服务器密码
        private String fromAddress; //发送者地址
        private String toAddress;   //接收者地址
        private boolean validate = false;   //是否需要身份认证
        private String subject; //邮件主题
        private String content; //邮件内容
        private String[] attachFileNames;   //附件

        public MailSender(String mailServerHost, String mailServerPort, String username, String password,
                              String fromAddress, String toAddress, boolean validate,
                              String subject, String content, String[] attachFileNames) {
            this.mailServerHost = mailServerHost;
            this.mailServerPort = mailServerPort;
            this.username = username;
            this.password = password;
            this.fromAddress = fromAddress;
            this.toAddress = toAddress;
            this.validate = validate;
            this.subject = subject;
            this.content = content;
            this.attachFileNames = attachFileNames;
        }

        /**
         * 获取邮件相关配置
         * @return Properties
         */
        public Properties getProperties() {
            Properties p = new Properties();
            p.put("mail.smtp.host", this.mailServerHost);
            p.put("mail.smtp.port", this.mailServerPort);
            p.put("mail.smtp.auth"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值