android 添加附件功能,Android实现带附件的邮件发送功能
本文实例讲解了基于基于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实现带附件的邮件发送功能相关推荐
- android 信息添加附件功能,Android实现带附件的邮件发送功能
本文实例讲解了基于基于JMail实现Android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点是必须使用GMail帐号 ...
- java 发送邮件添加附件,Java实现带附件的邮件发送功能
这篇文章主要为大家详细介绍了Java实现带附件的邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Java实现邮件发送功能的具体代码,供大 ...
- Java技术:SpringBoot实现邮件发送功能
邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助! 今天主要给大家分享简单邮件发送.HTML邮件发送.包含附件的邮件 ...
- Spring Boot最新版集成邮件发送功能大全
Spring Boot最新版集成邮件发送功能大全 前言 一.开启SMTP服务并获取授权码 二.创建Spring Boot项目 1.配置邮箱基本信息: 2.简单邮件发送: 3.发送带附件的邮件: 5.使 ...
- NET开发邮件发送功能的全面教程(含邮件组件源码)(
天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下. AD:2013云计算架构师峰会精彩课程曝光 ...
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
今天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2 ...
- [转].NET开发邮件发送功能的全面教程(含邮件组件源码)
转载自http://www.cnblogs.com/heyuquan/p/net-batch-mail-send-async.html 今天,给大家分享的是如何在.NET平台中开发"邮件发送 ...
- java实现邮件发送共鞥_Java实现复杂邮件发送功能(基于JavaMail)的实例
这篇文章主要为大家详细介绍了基于JavaMail的Java实现复杂邮件发送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 上一篇文章 基于 JavaMail 的 Java 邮件发送:简单邮件发 ...
- node.js发送html,利用Node.JS实现邮件发送功能
第一步.配置篇 首先需要安装nodemailer库 npm install nodemailer//默认会安装最新的版本. 关于这个库的文档参见nodemailer 第二步.库的一些使用介绍 这个库使 ...
最新文章
- 这54个docker命令!你必须懂!
- ArcEngine编辑功能的实现(二)
- localdatetime 默认时间_为什么建议使用你 LocalDateTime ,而不是 Date?
- GDCM:变更dcm文件的序列的测试程序
- Android之 FLAG_ACTIVITY_CLEAR_TASK
- delphi 关闭时缩小到托盘_如何正确地缩小毛孔?
- 用 Truffle 插件自动在Etherscan上验证合约代码
- Eclipse问题提示
- 在linux下安装mplayer和解码器
- 发两本经典的C/C++教材电子版
- 济南:建设中国软件名城
- 升级Android SDK (API24)笔记
- okGo框架的使用,下载列表显示
- 那些年奋斗的日子,岁月静好
- 添加https证书信任
- JLINK烧写U-boot到NAND Flash中
- 产品工作流| 工作交接
- docker中mysql数据定时备份_[Docker]MySql 定时备份
- 为什么要cssc初始化
- 湖大CG满分教程:文件排版(文本文件读写)
热门文章
- 基于React与Redux的留言墙的实现
- (总结)RHEL/CentOS 7.x的几点新改变
- 敏捷结果30天之第六天:周五回顾,找到三件做的好以及三件需要改善的事情...
- xenserver 管理口显示重复IP的处理方法
- 日记 [2008年01月21日]
- 计算机电缆的屏蔽,DJYVP计算机电缆(总屏蔽)和DJYPVP计算机电缆(分屏蔽加总屏蔽)区别...
- 鸿蒙2.0 安卓,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪
- matlab 文件名分离_MATLAB偏微分方程
- python爬虫执行js代码_爬虫之python3用execjs执行JS代码
- 用jsp上传文件时报错,是tomcat的文件夹为只读。修改只读权限后正常