本文转载自https://my.oschina.net/chenhao901007/blog/373883,谢谢!

package com.dailywork.util;import java.io.UnsupportedEncodingException;import java.util.List;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.BodyPart;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;public class EmailManager {private Properties props; // 系统属性private Session session; // 邮件会话对象private MimeMessage mimeMsg; // MIME邮件对象private Multipart mp; // Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象/** * Constructor *  * @param smtp *            邮件发送服务器 */public EmailManager() {props = System.getProperties();props.put("mail.smtp.auth", "false");session = Session.getDefaultInstance(props, null);session.setDebug(true);mimeMsg = new MimeMessage(session);mp = new MimeMultipart();}/** * Constructor *  * @param smtp *            邮件发送服务器 */public EmailManager(String smtp, String username, String password) {props = System.getProperties();props.put("mail.smtp.auth", "true");props.put("mail.smtp.host", smtp);props.put("username", username);props.put("password", password);props.setProperty("mail.transport.protocol", "smtp");props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");// ssl方式session = Session.getDefaultInstance(props, null);session.setDebug(true);mimeMsg = new MimeMessage(session);mp = new MimeMultipart();}/** * 发送邮件 */public boolean sendMail(String from, String[] to, String[] copyto, String subject, String content,List files, int port) {try {// 设置发信人mimeMsg.setFrom(new InternetAddress(from));// 设置接收人for (int i = 0; i < to.length; i++) {mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to[i]));}// 设置抄送人if (copyto != null && copyto.length > 0) {for (int i = 0; i < copyto.length; i++) {mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(copyto[i]));}}// 设置主题mimeMsg.setSubject(subject);// 设置正文for (String file : files) {BodyPart bp = new MimeBodyPart();bp.setContent(content, "text/html;charset=utf-8");mp.addBodyPart(bp);// 设置附件bp = new MimeBodyPart();FileDataSource fileds = new FileDataSource(file);bp.setDataHandler(new DataHandler(fileds));bp.setFileName(MimeUtility.encodeText(fileds.getName(), "UTF-8", "B"));mp.addBodyPart(bp);mimeMsg.setContent(mp);}mimeMsg.saveChanges();// 发送邮件if (props.get("mail.smtp.auth").equals("true")) {Transport transport = session.getTransport("smtp");transport.connect((String) props.get("mail.smtp.host"), port, (String) props.get("username"),(String) props.get("password"));transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));// transport.sendMessage(mimeMsg,// mimeMsg.getRecipients(Message.RecipientType.CC));transport.close();} else {Transport.send(mimeMsg);}System.out.println("邮件发送成功");} catch (MessagingException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}return true;}}
调用发送邮件函数:

public void sendMail() {String smtp = "smtp.qq.com";String username = "@qq.com";String password = "";String from = "@qq.com";String[] to = { "@qq.com" };String subject = "日志";String content = "你好!
本邮件发送自" + android.os.Build.MODEL + "。";String folder = Environment.getExternalStorageDirectory() + File.separator + AppUtil.toPath(this)+ File.separator + "logs" + File.separator; //获取目录路径List files = FileUtil.findFiles(folder); //获取文件夹下所有文件的绝对路径EmailManager email = new EmailManager(smtp, username, password);if(email.sendMail(from, to, null, subject, content, files, 465)) {for(String file : files) {FileUtil.deleteFile(file);}}}



更多相关文章

  1. TextView跑马灯效果
  2. 自定义弹窗AlertDialog
  3. OnclickListener与View.OnclickListener
  4. Android中Parcelable和Serializable接口用法
  5. Android(安卓)TextView 超链接
  6. Android(安卓)5.0新特性ToolBar
  7. Android通过socket连接服务器(PC)
  8. Android之百度地图开发,包含定位,覆盖物,经纬度位置转换,长按设置中
  9. 第一代Android壳源码--某某公司早期壳代码加固原理分析

随机推荐

  1. no
  2. IP地址获取
  3. 编写Wifi程序需要在AndroidMinifest中添
  4. ExpandableButtonMenu |底部弹出菜单
  5. Android(安卓)编译的几个命令
  6. Android开发之OpenGL+ES教程
  7. Android(安卓)Sqlite Locking
  8. android XML 画图
  9. 回弹ScrollView
  10. Android(安卓)Notification and icon iss