Android 快速发送邮件

3,124 阅读1分钟

在一般的 apk 中,我们都会设置一个让用户提意见的功能,常见的做法,就是申请一个通用邮箱,让内容发送过来就好了。

而这里的邮箱发送,属于第三方邮件发送,即本来你申请的是 163 的,然后却用 QQ 邮箱去登录,那肯定是不行的,所以需要申请授权码,申请之后,就用账号加授权码发送即可。 所以,这里添加一个 ZMailManager 的工具类。

关联

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
implementation 'com.github.LillteZheng:ZMail:V1.0'

ZMailManager 代码非常简单:

 //发送邮件 
 /**
 * fromAddr       -- 发送人邮箱,不填报错
 * nickName       -- 发送人的昵称,不写则默认为 test
 * password       -- 授权码,不填报错,gmail 记得允许权限低的应用可以访问的权限
 * host           -- 配置 host 服务地址,默认根据发件人的邮箱来,比如 xx@qq.com ,则 host 为 smtp.qq.com
 * isSSLvertify   -- 是否开启SSL验证,默认开启,开启是端口为465,不开启则为25,建议开启,很多邮箱都需要验证 SSL的
 * port           -- 根据isSSLvertify,开启是端口为465,不开启则为25,也支持自定义
 * subject        -- 邮件主题,不写默认 TEST
 * content        -- 邮件内容,不写默认 This is a test email
 * file           -- 支持 url 和 本地文件,可多个
 * toAddrs        -- 收件人,多个多个,必填,不填报错
 */
ZMailManager
        .fromAddr(SEND_EMAIL)   
        .nickName("会散步的鱼")
        .password(PASSWORD)
        //.host("smtp.163.com")
        //.isSSLvertify(false)
        //.port(25)
        .subject("测试邮件")
        .content("这是一封测试邮件!")
        .file(imageUrl)
       // .file(new String[]{imagePath})
        .toAddrs(new String[]{TO_EMAIL})
        .listener(this)
        .send();

这样就可以发送邮件了,附件支持本地与 url 的文件,一般都能满足需求了。

工程见 github github.com/LillteZheng…