本文实例讲解了基于基于jmail实现android邮件发送功能,分享给大家供大家参考,具体内容如下

在android上发送邮件方式:

第一种:借助gmail app客户端,缺点是必须使用gmail帐号,有一点是比较方便,不需要写很多代码,但是不是很灵活。

第二种:基于jmail实现,可以很灵活的自己设置各种属性,不需要gmail帐号

在第二种方式的实现之前,看一下jmail对email结构的划分:

基于smtp协议发送email,所以客户端必须要知道smtp的主机。

腾讯邮件的smtp主机为:stmp.qq.com端口为465基于ssl协议。

最后我做了一个简单的封装,把发送文本加图像附件的功能做出了。

一个单独的class,只要调用一下即可完成:

package com.gloomyfish.jmail.demo;

import java.util.date;

import java.util.properties;

import javax.activation.datahandler;

import javax.activation.datasource;

import javax.activation.filedatasource;

import javax.mail.address;

import javax.mail.message;

import javax.mail.multipart;

import javax.mail.session;

import javax.mail.transport;

import javax.mail.internet.internetaddress;

import javax.mail.internet.mimebodypart;

import javax.mail.internet.mimemessage;

import javax.mail.internet.mimemultipart;

public class emailsender {

private string host;

private string port;

private string username;

private string password;

private string[] images;

public string[] getimagepath() {

return images;

}

public void setimagepath(string[] imagepath) {

this.images = imagepath;

}

public emailsender(string host, string port, string username, string password)

{

this.host = host;

this.port = port;

this.username = username;

this.password = password;

}

public void sendemail(string subject, string recepits, string sender, string content)

{

properties props = new properties();

props.put("mail.smtp.host", host); //设置smtp的服务器地址

// props.put("mail.smtp.starttls.enable", "true");

// props.put("mail.smtp.port", port); // 设置端口

// props.put("mail.smtp.auth", "true"); //设置smtp服务器要身份验证。

props.put("mail.smtp.socketfactory.port", port);

props.put("mail.smtp.socketfactory.class", "javax.net.ssl.sslsocketfactory");

props.put("mail.smtp.auth", "true");

props.put("mail.smtp.port", port);

// 返回授权base64编码

popupauthenticator auth = new popupauthenticator(username, password);

// 获取会话对象

session session = session.getinstance(props, auth);

// 设置为debug模式

session.setdebug(true);

// 邮件内容对象组装

mimemessage message = new mimemessage(session);

try

{

address addressfrom = new internetaddress(sender, "jia zhi gang");

address addressto = new internetaddress(recepits, "my qq e-mail");

message.setsubject(subject);

message.setsentdate(new date());

message.setfrom(addressfrom);

message.addrecipient(message.recipienttype.to,addressto);

// 邮件文本/html内容

multipart multipart = new mimemultipart();

mimebodypart messagebodypart = new mimebodypart();

messagebodypart.setcontent(content, "text/html");

multipart.addbodypart(messagebodypart);

// 添加邮件附件

if (images != null && images.length > 0) {

for (string filepath : images) {

mimebodypart attachpart = new mimebodypart();

datasource source = new filedatasource(filepath);

attachpart.setdatahandler(new datahandler(source));

attachpart.setfilename(filepath);

multipart.addbodypart(attachpart);

}

}

// 保存邮件内容

message.setcontent(multipart);

// 获取smtp协议客户端对象,连接到指定smpt服务器

transport transport = session.gettransport("smtp");

transport.connect(host, integer.parseint(port), username, password);

system.out.println("connet it success!!!!");

// 发送邮件到smtp服务器

thread.currentthread().setcontextclassloader( getclass().getclassloader() );

transport.send(message);

system.out.println("send it success!!!!");

// 关闭连接

transport.close();

}

catch(exception e)

{

e.printstacktrace();

}

}

public string gethost() {

return host;

}

public void sethost(string host) {

this.host = host;

}

public string getport() {

return port;

}

public void setport(string port) {

this.port = port;

}

public string getusername() {

return username;

}

public void setusername(string username) {

this.username = username;

}

public string getpassword() {

return password;

}

public void setpassword(string password) {

this.password = password;

}

}

用户授权类:

package com.gloomyfish.jmail.demo;

import javax.mail.authenticator;

import javax.mail.passwordauthentication;

class popupauthenticator extends authenticator {

private string username;

private string password;

public popupauthenticator(string username, string password)

{

this.username = username;

this.password = password;

}

public passwordauthentication getpasswordauthentication() {

return new passwordauthentication(username, password);

}

}

特别注意:

在android上发送邮件必须自己导入三个相关的java文件

以上就是本文的全部内容,希望对大家的学习android软件编程有所帮助。

android 添加附件功能,Android实现带附件的邮件发送功能相关推荐

  1. android 信息添加附件功能,Android实现带附件的邮件发送功能

    本文实例讲解了基于基于JMail实现Android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点是必须使用GMail帐号 ...

  2. java 发送邮件添加附件,Java实现带附件的邮件发送功能

    这篇文章主要为大家详细介绍了Java实现带附件的邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Java实现邮件发送功能的具体代码,供大 ...

  3. Java技术:SpringBoot实现邮件发送功能

    邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助! 今天主要给大家分享简单邮件发送.HTML邮件发送.包含附件的邮件 ...

  4. Spring Boot最新版集成邮件发送功能大全

    Spring Boot最新版集成邮件发送功能大全 前言 一.开启SMTP服务并获取授权码 二.创建Spring Boot项目 1.配置邮箱基本信息: 2.简单邮件发送: 3.发送带附件的邮件: 5.使 ...

  5. NET开发邮件发送功能的全面教程(含邮件组件源码)(

    天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下. AD:2013云计算架构师峰会精彩课程曝光 ...

  6. .NET开发邮件发送功能的全面教程(含邮件组件源码)

    今天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2 ...

  7. [转].NET开发邮件发送功能的全面教程(含邮件组件源码)

    转载自http://www.cnblogs.com/heyuquan/p/net-batch-mail-send-async.html 今天,给大家分享的是如何在.NET平台中开发"邮件发送 ...

  8. java实现邮件发送共鞥_Java实现复杂邮件发送功能(基于JavaMail)的实例

    这篇文章主要为大家详细介绍了基于JavaMail的Java实现复杂邮件发送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 上一篇文章 基于 JavaMail 的 Java 邮件发送:简单邮件发 ...

  9. node.js发送html,利用Node.JS实现邮件发送功能

    第一步.配置篇 首先需要安装nodemailer库 npm install nodemailer//默认会安装最新的版本. 关于这个库的文档参见nodemailer 第二步.库的一些使用介绍 这个库使 ...

最新文章

  1. 这54个docker命令!你必须懂!
  2. ArcEngine编辑功能的实现(二)
  3. localdatetime 默认时间_为什么建议使用你 LocalDateTime ,而不是 Date?
  4. GDCM:变更dcm文件的序列的测试程序
  5. Android之 FLAG_ACTIVITY_CLEAR_TASK
  6. delphi 关闭时缩小到托盘_如何正确地缩小毛孔?
  7. 用 Truffle 插件自动在Etherscan上验证合约代码
  8. Eclipse问题提示
  9. 在linux下安装mplayer和解码器
  10. 发两本经典的C/C++教材电子版
  11. 济南:建设中国软件名城
  12. 升级Android SDK (API24)笔记
  13. okGo框架的使用,下载列表显示
  14. 那些年奋斗的日子,岁月静好
  15. 添加https证书信任
  16. JLINK烧写U-boot到NAND Flash中
  17. 产品工作流| 工作交接
  18. docker中mysql数据定时备份_[Docker]MySql 定时备份
  19. 为什么要cssc初始化
  20. 湖大CG满分教程:文件排版(文本文件读写)

热门文章

  1. 基于React与Redux的留言墙的实现
  2. (总结)RHEL/CentOS 7.x的几点新改变
  3. 敏捷结果30天之第六天:周五回顾,找到三件做的好以及三件需要改善的事情...
  4. xenserver 管理口显示重复IP的处理方法
  5. 日记 [2008年01月21日]
  6. 计算机电缆的屏蔽,DJYVP计算机电缆(总屏蔽)和DJYPVP计算机电缆(分屏蔽加总屏蔽)区别...
  7. 鸿蒙2.0 安卓,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪
  8. matlab 文件名分离_MATLAB偏微分方程
  9. python爬虫执行js代码_爬虫之python3用execjs执行JS代码
  10. 用jsp上传文件时报错,是tomcat的文件夹为只读。修改只读权限后正常