1.首先用的jar包为javaemail

下载地址:

https://yunpan.cn/cB3kY8WIvcGtU (提取码:e042)

2.工具包

package com.kllayhello.utils;import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;import java.util.Properties;import javax.activation.CommandMap;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.activation.MailcapCommandMap;
import javax.mail.Message;
import javax.mail.MessagingException;
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;
import javax.mail.internet.MimeUtility;
import javax.mail.util.ByteArrayDataSource;/*** Created by Administrator on 2016/6/30.* http://www.jb51.net/article/38158.htm* http://blog.csdn.net/svenke2011/article/details/8229521** http://blog.csdn.net/mad1989/article/details/25964495** http://blog.csdn.net/chinafe/article/details/7183400*http://blog.csdn.net/xanxus46/article/details/8296529* http://blog.csdn.net/kudy21/article/details/7665434*/
public class EmailUtils{/*** android内部发送邮件* 调用手机邮箱* 不能自动发送* sendto 发送邮件* */public void sendTOEmail(String title,String content,Context context){Intent data=new Intent(Intent.ACTION_SENDTO);data.setData(Uri.parse("mailto:qg@17xu.com"));data.putExtra(Intent.EXTRA_SUBJECT, title);data.putExtra(Intent.EXTRA_TEXT, content);context.startActivity(data);}/*** 调用手机邮箱待附件的* 不能自动发送* */public void sendToFileEmail(String title,String content,Context context){Intent intent = new Intent(Intent.ACTION_SEND);String[] tos = { "qq@17xu.com" };String[] ccs = { "qq@17xu.com" };String[] bccs = {"qq@17xu.com"};intent.putExtra(Intent.EXTRA_EMAIL, tos);intent.putExtra(Intent.EXTRA_CC, ccs);intent.putExtra(Intent.EXTRA_BCC, bccs);intent.putExtra(Intent.EXTRA_TEXT, content);intent.putExtra(Intent.EXTRA_SUBJECT, title);intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///mnt/sdcard/qq.png"));intent.setType("image/*");intent.setType("message/rfc882");Intent.createChooser(intent, "Choose Email Client");context.startActivity(intent);}/*** 发送邮件* *//*** 邮件发送程序** @param host*            邮件服务器 如:smtp.qq.com* @param address*            发送邮件的地址 如:qq@qq.com* @param from*            来自: qq@qq.com* @param password*            您的邮箱密码* @param to*            接收人* @param port*            端口(QQ:25)* @param subject*            邮件主题* @param content*            邮件内容* @throws Exception*/public void SendEmail(String host, String address, String from, String password, String to, String port, String subject, String content) throws Exception {Multipart multiPart;String finalString = "";Properties props = System.getProperties();props.put("mail.smtp.starttls.enable", "true");props.put("mail.smtp.host", host);props.put("mail.smtp.user", address);props.put("mail.smtp.password", password);props.put("mail.smtp.port", port);props.put("mail.smtp.auth", "true");Log.i("Check", "done pops");Session session = Session.getDefaultInstance(props, null);DataHandler handler = new DataHandler(new ByteArrayDataSource(finalString.getBytes(), "text/plain"));MimeMessage message = new MimeMessage(session);message.setFrom(new InternetAddress(from));message.setDataHandler(handler);Log.i("Check", "done sessions");multiPart = new MimeMultipart();InternetAddress toAddress;toAddress = new InternetAddress(to);message.addRecipient(Message.RecipientType.TO, toAddress);Log.i("Check", "added recipient");message.setSubject(subject);message.setContent(multiPart);message.setText(content);Log.i("check", "transport");Transport transport = session.getTransport("smtp");Log.i("check", "connecting");transport.connect(host, address, password);Log.i("check", "wana send");transport.sendMessage(message, message.getAllRecipients());transport.close();Log.i("check", "sent");}/*** 发送附件邮件* http://cuisuqiang.iteye.com/blog/1586023* *//*** 邮件发送程序** @param host*            邮件服务器 如:smtp.qq.com* @param address*            发送邮件的地址 如:qq@qq.com* @param from*            来自: qq@qq.com* @param password*            您的邮箱密码* @param to*            接收人* @param port*            端口(QQ:25)* @param subject*            邮件主题* @param content*            邮件内容* @throws Exception*/public void SendEmailfile(String host, String address, String from, String password, String to, String port, String subject, String content,String file_path) throws Exception {MimeMultipart multiPart;String finalString = "";Properties props = System.getProperties();props.put("mail.smtp.starttls.enable", "true");props.put("mail.smtp.host", host);props.put("mail.smtp.user", address);props.put("mail.smtp.password", password);props.put("mail.smtp.port", port);props.put("mail.smtp.auth", "true");Session session = Session.getDefaultInstance(props, null);DataHandler handler = new DataHandler(new ByteArrayDataSource(finalString.getBytes(), "text/plain"));MimeMessage message = new MimeMessage(session);message.setFrom(new InternetAddress(from));message.setDataHandler(handler);multiPart = new MimeMultipart("mixed"); //附件InternetAddress toAddress;toAddress = new InternetAddress(to);message.addRecipient(Message.RecipientType.TO, toAddress);  //添加收件人Log.i("Check", "added recipient");message.setSubject(subject);// 邮件内容MimeBodyPart htmlPart = new MimeBodyPart();htmlPart.setContent("<body background='#'>"+ "<div style='position: absolute; left: 390px; top: 150px;height: "+ "100px;width: 200px;' align='center'>"+ "<font color='red'>这是测试邮件,请勿回复</font>" + "</div></body>","text/html;charset=UTF-8");// TODO 组装的顺序非常重要,一定要先组装文本域,再组装文件multiPart.addBodyPart(htmlPart);//附件添加try{MimeBodyPart attachPart = new MimeBodyPart();FileDataSource fds = new FileDataSource(file_path); //打开要发送的文件DataHandler dh=new DataHandler(fds);attachPart.setDataHandler(dh);attachPart.setFileName(MimeUtility.encodeText(dh.getName())); //设置名称multiPart.addBodyPart(attachPart); //添加附件message.setContent(multiPart);  //附件设置内容message.saveChanges(); //保存邮件}catch (Exception e){System.out.print("File Bug:::"+e.getMessage());}Transport transport = session.getTransport("smtp");transport.connect(host, address, password);transport.sendMessage(message, message.getAllRecipients());transport.close();Log.i("check", "sent");System.out.println("send success!");}
/*** 暂时不能用,有时间再研究* 发送待附件的邮件*str_to_mail   发邮件的目的地(收件人信箱)* str_from_mail   发邮件的出发地(发件人的信箱)* str_smtp host  发件人使用发邮件的电子信箱服务器* str_user      发件人用户名* str_pass      发件人密码* str_title     邮件标题* str_body      邮件内容* str_file_path  附件* */public void send_mail_file(String str_to_mail,String str_from_mail,String str_smtp,String str_user,String str_pass,String ports,String str_title,String str_body,String str_file_path){Log.v("filesend","send_mail_file");String host = str_smtp;   //发件人使用发邮件的电子信箱服务器String from = str_from_mail;    //发邮件的出发地(发件人的信箱)String to   = str_to_mail;   //发邮件的目的地(收件人信箱)Log.v("filesend",str_smtp);Log.v("filesend",str_from_mail);Log.v("filesend",str_to_mail);Properties props = System.getProperties();// Get system propertiesprops.put("mail.smtp.starttls.enable", "true");props.put("mail.smtp.host", host);// Setup mail server//发件人邮箱和密码props.put("mail.smtp.user", str_user);props.put("mail.smtp.password", str_pass);props.put("mail.smtp.port", ports);props.put("mail.smtp.auth", "true"); //这样才能通过验证Session session = Session.getDefaultInstance(props, null);MimeMessage message = new MimeMessage(session); // Define messagetry {message.setFrom(new InternetAddress(from)); // Set the from address} catch (MessagingException e) {e.printStackTrace();}try {message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));// Set the to addressmessage.setSubject(str_title);// Set the subjectmessage.setText(str_body);// Set the content} catch (MessagingException e) {e.printStackTrace();}MimeBodyPart attachPart = new MimeBodyPart();FileDataSource fds = new FileDataSource(str_file_path); //打开要发送的文件try {attachPart.setDataHandler(new DataHandler(fds));attachPart.setFileName(fds.getName());} catch (MessagingException e) {e.printStackTrace();}MimeMultipart allMultipart = new MimeMultipart("mixed"); //附件try {allMultipart.addBodyPart(attachPart);//添加message.setContent(allMultipart);message.saveChanges();} catch (MessagingException e) {e.printStackTrace();}try {//报错解决方法MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");CommandMap.setDefaultCommandMap(mc);Transport.send(message);//开始发送} catch (MessagingException e) {e.printStackTrace();}}}

3.使用工具包:

  but_emailtest.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//使用HandlerThreadmhandlerthread=new HandlerThread("myhandlerthread");mhandlerthread.start();mhandler = new Handler(mhandlerthread.getLooper());mhandler.post(mRunnable);}});}Runnable mRunnable = new Runnable() {@Overridepublic void run() {NetworkUtils nu=new NetworkUtils();EmailUtils email=new EmailUtils();//emsuper.run();ail.sendToFileEmail("哈哈哈test","这是荣哦支持你下哈哈",MinShiLi.this);String to="fajianren@17xu.com";String host = "smtp.17xu.com";String address = "88888@17xu.com"; //发件人地址String from = "88888@17xu.com";String password = "******";// 密码String filepath=nu.getSDPath()+"/"+"qq.png";String port = "25"; //发邮件端口号try {//email.SendEmail(host, address, from, password, to, port, "主题测试", "内容哦哈哈哈哈哈哈哈");
//附件email.SendEmailfile(host, address, from, password, to, port, "主题测试", "内容哦哈哈哈哈哈哈哈",filepath);} catch (Exception e) {e.printStackTrace();}}};

4.sd卡获取文件路径、判断网络是否链接

package com.kllayhello.utils;import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Environment;import java.io.File;/*** Created by Administrator on 2016/6/30.*/
public class NetworkUtils {/*** 判断网络是否链接* */public boolean isNetworkConnected(Context context) {if (context != null) {ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();if (mNetworkInfo != null) {return mNetworkInfo.isAvailable();}}return false;}/*** 判断sd卡是否存在 并获取路径* */
public String getSDPath(){File sdDir = null;boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);//判断sd卡是否存在if(sdCardExist){sdDir = Environment.getExternalStorageDirectory();//获取跟目录}return sdDir.toString();}}

参考文件:

* http://cuisuqiang.iteye.com/blog/1586023

* http://www.jb51.net/article/38158.htm* http://blog.csdn.net/svenke2011/article/details/8229521** http://blog.csdn.net/mad1989/article/details/25964495** http://blog.csdn.net/chinafe/article/details/7183400*http://blog.csdn.net/xanxus46/article/details/8296529* http://blog.csdn.net/kudy21/article/details/7665434

转载于:https://www.cnblogs.com/kllay/p/5650962.html

android--email发送邮件,文本还有附件形式的邮件相关推荐

  1. Android 发送邮件信息,附带附件

    直接上demo代码: MainActivity.java package com.example.androidemaildemo;import java.util.Properties;import ...

  2. Android开发中怎样调用系统Email发送邮件(多种调用方式)

    在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外,所谓的调用Email,只是说Email可以接收Intent并做这些事情 我们都知道,在Android中 ...

  3. android 原生 电子邮件 应用 发送邮件附带 中文名附件时 附件名称乱码问题解决...

    2019独角兽企业重金招聘Python工程师标准>>> 编写好邮件点击发送,代码执行MessageCompose.java 中的(邮件的编写,及添加附件都在这个类中处理) priva ...

  4. Python3实现向指定邮箱发送邮件(支持附件文件、图片等)

    Background 最近业务需求需要把生成的月报定时发送到指定邮箱,直接在网上找了相关经验改巴改巴给实现了,测试可以直接使用,生产是我从MySQL数据库获取文件信息和邮箱等使用的,程序中的注释相当清 ...

  5. 进阶的阿牛哥之用python向多人发送邮件(带附件)、遍历邮件获取内容(两种方法:imbox、imaplib)

    (一)向多人发送邮件(带附件) 一.使用的库 这个程序涉及两个库:smtplib 和 email 这两个库都是Python自带的,所以不需要额外的下载安装. 二.思路和步骤 总体思路很简单,就像我们平 ...

  6. 封装Email发送多个附件以及多个发件人随机发送(附带一些微小注意点)

    封装Email发送多个附件以及多个发件人随机发送 1.多个发件人进行随机选取 2.多个附近发送 代码铺设 //appendixs 多个附件*(路径)//from(多个发件人-随机发送)//toFrom ...

  7. Python 发送邮件时图片附件变为bin格式的解决方案

    如题,Python 发送邮件时图片附件可能会出现发送成功但图片格式变为bin格式的问题 对此,可以使用add_header()函数解决该问题 #6 添加图片 image_data = open('C: ...

  8. iOS12系统应用发送邮件中的附件

    iOS12系统应用发送邮件中的附件 iOS12系统应用发送邮件中的附件,如果发送邮件的内容很多,或者包含文档.图片等,可以以附件的形式进行发送.此时需要使用addAttachmentData(_:mi ...

  9. 使用Apache Commons Net SMTP以Java(和Android)发送邮件:STARTTLS,SSL

    最近我正在做一个Android实验,我想使用SMTP服务器通过android应用程序通过身份验证和加密来发送电子邮件. 好吧, 我发现Android上的javax.mail并不是一个很好的选择 ,因为 ...

最新文章

  1. mapxtreme开发资料全集
  2. python str byte编码_Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题...
  3. setup factory 设置自启动
  4. qt初学者 第一个小程序 小界面
  5. 重庆电子工程学院计算机专业,重庆计算机电子工程职业学院2020年招生录取分数线...
  6. 月薪2万是一种怎样的人生体验?
  7. 赚钱真的要抓住风口,抓住风口猪都能飞
  8. make_heap,pop_heap,push_heap
  9. Java原生-实现SHA256算法【工具类】
  10. Hibernate框架搭建
  11. 各省历年排污费入库金额(2008-2017年)
  12. vscode c语言插件_推荐学习C语言或CPP使用的代码编辑器
  13. java击鼓传花游戏list_击鼓传花游戏作文集合15篇
  14. ESP8266 NodeMCU驱动OLED屏(SSD1306,4PIN,IIC)
  15. BigWorld用到的其他库
  16. 帧同步,帧同步是什么意思
  17. Python实用脚本实践
  18. windows下vue项目启动步骤
  19. 罗马数字转十进制 古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候, 现在看起来简直不能忍受,所以在现代很少使用了。
  20. 血糖仪等蓝牙设备SDK

热门文章

  1. 空间计量 python_【空间计量教程】空间计量及Geoda、Stata、R操作(线性回归篇)...
  2. 区块链跨境支付模式及其风险监管
  3. 金盾防火墙为你保驾护航
  4. 运行命令打开电脑程序 快捷键
  5. 马云+许家印=神马?
  6. 数值分析案例:Newton插值预测2019城市(Asian)温度、Crout求解城市等温性的因素系数
  7. android联系人信息的存储结构
  8. 海思芯片--查看基本信息
  9. html yy直播,YY开播怎么捕捉窗口屏幕?设置直播范围介绍
  10. tkinter事件绑定方法总结