android发邮件;提供了两种方式,只带的gmail发送;跟jmail发送;
javamail下载地址
http://code.google.com/p/javamail-android/downloads/list
1.自带的gmail发送,特点是方便,几句代码就搞定,但不够灵活,有局限性;


下面是使用gamil发送方式;

  String[] recipients = {"目标邮箱地址1", "目标邮箱地址2(可以多个邮箱地址)"};  String subject = "TestGmail";  String text = "TestGmail邮件内容";  Intent intent = new Intent();  intent.setAction(Intent.ACTION_SEND);  intent.setType("message/rfc822");  intent.putExtra(Intent.EXTRA_EMAIL, recipients);  intent.putExtra(Intent.EXTRA_SUBJECT, subject);  intent.putExtra(Intent.EXTRA_TEXT, text);  startActivity(intent);

2.jamil发送,代码量多点,不受gamil限制;稍复杂点,灵活性高;

步骤;
1.构建邮件消息
2.建立服务器的会话
3.发送邮件

邮件消息实体类

package com.hua.guard.mail;import java.util.Properties;/** * 发送邮件信息 * @author Alan */public class MailSenderInfo{    //1. 发送邮件的服务器的IP和端口     private String mailServerHost;  private String mailServerPort = "25";  //2.是否验证private boolean validate = false;//3.用户账户private String userName;private String password;//4.邮件内容信息private String fromAddress;private String toAddress;private String subject;private String content;// 邮件附件的文件名   private String[] attachFileNames;   /**    * * 获得邮件会话属性        */    public Properties getProperties(){    Properties p = new Properties();   p.put("mail.smtp.host", this.mailServerHost);   p.put("mail.smtp.port", this.mailServerPort);     p.put("mail.smtp.auth", validate ? "true" : "false");    return p;   }public String getMailServerHost(){return mailServerHost;}public void setMailServerHost(String mailServerHost){this.mailServerHost = mailServerHost;}public String getMailServerPort(){return mailServerPort;}public void setMailServerPort(String mailServerPort){this.mailServerPort = mailServerPort;}public boolean isValidate(){return validate;}public void setValidate(boolean validate){this.validate = validate;}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;}public String getFromAddress(){return fromAddress;}public void setFromAddress(String fromAddress){this.fromAddress = fromAddress;}public String getToAddress(){return toAddress;}public void setToAddress(String toAddress){this.toAddress = toAddress;}public String getSubject(){return subject;}public void setSubject(String subject){this.subject = subject;}public String getContent(){return content;}public void setContent(String content){this.content = content;}public String[] getAttachFileNames(){return attachFileNames;}public void setAttachFileNames(String[] attachFileNames){this.attachFileNames = attachFileNames;} }

2.组装邮件信息

package com.hua.guard.mail;import java.util.Date;import java.util.Properties;import javax.mail.Address;import javax.mail.BodyPart;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;/** * 发送邮件 可以方式附件 html 格式 文本格式 * @author Alan */public class MultiMailsender{/** * 发送文本类型邮件 * @param mailInfo * @return */public boolean sendTextMail(MailSenderInfo mailInfo){MyAuthenticator myAuthenticator = null;// 是否验证if (mailInfo.isValidate()){myAuthenticator = new MyAuthenticator(mailInfo.getUserName(),mailInfo.getPassword());}Properties pro = mailInfo.getProperties();// 根据邮件会话属性和密码验证器构造一个发送邮件的sessionSession sendMailSession = Session.getDefaultInstance(pro,myAuthenticator);// 根据session创建一个邮件消息try{Message mailMessage = new MimeMessage(sendMailSession);// 创建邮件发送者地址Address from = new InternetAddress(mailInfo.getFromAddress());// 设置邮件消息的发送者mailMessage.setFrom(from);// 创建邮件的接收者地址,并设置到邮件消息中Address to = new InternetAddress(mailInfo.getToAddress());mailMessage.setRecipient(Message.RecipientType.TO, to);// 设置邮件消息的主题mailMessage.setSubject(mailInfo.getSubject());// 设置邮件消息发送的时间mailMessage.setSentDate(new Date());// 设置邮件消息的主要内容String mailContent = mailInfo.getContent();mailMessage.setText(mailContent);// 发送邮件Transport.send(mailMessage);return true;}catch (Exception e){e.printStackTrace();return false;}}/** * html文件格式的邮件 * @param mailInfo * @return */public boolean sendHtmlMail(MailSenderInfo mailInfo){MyAuthenticator myAuthenticator = null;// 是否验证if (mailInfo.isValidate()){myAuthenticator = new MyAuthenticator(mailInfo.getUserName(),mailInfo.getPassword());}Properties pro = mailInfo.getProperties();// 根据邮件会话属性和密码验证器构造一个发送邮件的sessionSession sendMailSession = Session.getDefaultInstance(pro,myAuthenticator);// 根据session创建一个邮件消息try{Message mailMessage = new MimeMessage(sendMailSession);// 创建邮件发送者地址Address from = new InternetAddress(mailInfo.getFromAddress());// 设置邮件消息的发送者mailMessage.setFrom(from);// 创建邮件的接收者地址,并设置到邮件消息中Address to = new InternetAddress(mailInfo.getToAddress());mailMessage.setRecipient(Message.RecipientType.TO, to);// 设置邮件消息的主题mailMessage.setSubject(mailInfo.getSubject());// 设置邮件消息发送的时间mailMessage.setSentDate(new Date());// 设置邮件消息的主要内容String mailContent = mailInfo.getContent(); // 设置邮件内容  Multipart mainPart = new MimeMultipart();  BodyPart html = new MimeBodyPart();  html.setContent(mailContent, "text/html;charset=GBK"); mainPart.addBodyPart(html); mailMessage.setContent(mainPart);  //发送 Transport.send(mailMessage);  }catch (Exception e){e.printStackTrace();return false;}return true;}}

3.进行发送

import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import com.hua.util.Configer;import com.hua.util.Constant;/** * 对外公开的方法 进行发送邮件 * @author Alan * */public class SendEmailHtmLocation{/** * 发送html格式邮件 */  public static boolean sendHtmlMail(File file){    MailSenderInfo mailInfo = new MailSenderInfo();    mailInfo.setMailServerHost(Constant.emailServicHost);    mailInfo.setMailServerPort(Constant.emailPort);    mailInfo.setValidate(true);    mailInfo.setUserName(Constant.emailUserName);    mailInfo.setPassword(Constant.emailPwd);    mailInfo.setFromAddress(Constant.emailUserName);    mailInfo.setToAddress(Configer.SMS_EMAIL_ADDRESS);    mailInfo.setSubject("test信息");        BufferedReader br = null;    StringBuffer sb = null;    try{    //将文件写成string        FileInputStream fileInputStream = new FileInputStream(file);    br = new BufferedReader(new InputStreamReader(fileInputStream));    String line = null;    sb = new StringBuffer();    while ((line = br.readLine()) != null) {sb.append(line);}        }catch(Exception e){    e.printStackTrace();    return false;    }finally{    if(br!=null){    try{br.close();}catch (IOException e){e.printStackTrace();return false;}    }    }        mailInfo.setContent(sb.toString());        MultiMailsender sender = new MultiMailsender();    sender.sendHtmlMail(mailInfo);    return true;    }}

更多相关文章

  1. Androidの发送Email
  2. Android——使用 Broastcast 实现进程间通讯
  3. Android消息处理机制
  4. Android与Java AIO实现简单Echo服务器与客户端
  5. android 向serverGet和Post请求的两种方式,android向server发送
  6. Android(安卓)BroadcastReceiver介绍
  7. A20红外遥控器与Android功能的适配
  8. Android消息循环机制
  9. EventBus源码追踪

随机推荐

  1. PHP通过系统命令执行Python脚本
  2. php100教程资料46~95讲分享
  3. 打印具有各种值的php页面
  4. 如何实现分布式文件上传解决方案?
  5. 有没有办法从指定的网站找到某种颜色的图
  6. android json php测试输出垃圾
  7. PHP内爆不适用于大数组?
  8. instanceof php 的几个具体例子
  9. php快速排序法
  10. memcache在telnet下的命令操作