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平台中开发"邮件发送 ...
- node.js发送html,利用Node.JS实现邮件发送功能
第一步.配置篇 首先需要安装nodemailer库 npm install nodemailer//默认会安装最新的版本. 关于这个库的文档参见nodemailer 第二步.库的一些使用介绍 这个库使 ...
- Laravel 6 结合网易/阿里邮箱基本邮件发送功能使用
如果没有自建邮件服务器,直接结合网易.阿里邮箱可以非常简单方便的使用邮件发送功能. 注册前首先得保证自己有一个域名,阿里最好是在当前账户下有一个已注册的域名. 根据下方地址注册相应的账户信息,选择其中 ...
最新文章
- 有了这款可视化工具,Java 应用性能分析、调优 so easy...
- 简单c语言图形界面,求个用最简单的的代码来实现图形界面…
- Linux下Rsync+Inotify-tools实现数据实时同步
- matlab如何进行数字信号处理,数字信号处理基础及MATLAB实现(第2版)
- mysql隐藏information_如何让普通用户登录phpmyadmin不显示information_schema
- JAVA面试速记,面试速记之computed与watch的区别
- 如何快速开发后台管理系统【未完,待补充,欢迎拍砖】
- python 图像压缩pca_在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
- 随笔37 JVM内存
- Elasticsearch 基本查询,term,match,
- Android之利用volley搭建简洁网络框架
- Cups打印机驱动延迟Bug解决
- 使用Docker-compose 编排Maximo容器环境
- Spark学习(6)-Spark SQL
- css 设置背景图一半_css怎么背景图片显示不全?
- 2022跨年烟花代码(四)HTML5全屏烟花动画特效
- ARM嵌入式linux培训班视频 全集
- linux设置查看与设置文件编码格式
- 深度学习04 -模型管理
- Oauth2.0 github认证登录实现
热门文章
- wxWidgets:容器类
- boost::mp11::mp_or相关用法的测试程序
- boost::log::sinks::text_ipc_message_queue_backend用法的测试程序
- boost::geometry模块多边形叠加示例
- Boost:列出设备的测试程序
- Boost:使用静态c ++内核语言扩展以进行编译和 执行模板化的c ++内核
- boost的chrono模块运行计时器的测试程序
- Boost:bind绑定的function<>测试程序
- ITK:演示可用的阈值算法
- DCMTK:创建大型(> 4 GB)增强型CT对象的测试