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();
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session 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();
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session 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;
}
}
分享到:
相关推荐
首先,Android发送邮件通常涉及到两个主要方法:一是通过集成SMTP(Simple Mail Transfer Protocol)服务在后台直接发送;二是通过Intent系统服务,唤起用户的邮件客户端来发送。这两种方法各有优缺点,适用于不同的...
在Android平台上,发送邮件有多种方法,每种方式都有其适用场景和优缺点。下面将详细介绍几种常见的Android邮件发送方式。 1. **使用Intent启动邮件应用** Android系统内置了对邮件应用的支持,可以通过Intent来...
在Android平台上实现邮件发送功能,通常涉及到SMTP(Simple Mail Transfer Protocol)服务和JavaMail API的使用。这是一个典型的网络通信和应用集成的过程,涉及到多个技术层面。以下是对这一知识点的详细阐述: 1....
在Android平台上实现发送邮件功能是一项常见的任务,尤其对于开发者来说,理解如何集成这一特性到应用程序中至关重要。本文将深入探讨如何在Android应用中构建并实现邮件发送功能。 首先,我们需要了解的是,...
本项目“android 发邮件源码”提供了一个实际的示例,可以帮助开发者理解和实现这个功能。以下是对该源码工程中关键知识点的详细解释: 1. **JavaMail API**: Android开发中,发送邮件通常会用到JavaMail API,这是...
"Android发送邮件的jar.zip" 包含了几个关键的Java档案(JAR)文件,它们是实现这一功能的重要组件。下面将详细介绍这些JAR文件以及如何在Android应用中使用它们来发送邮件。 1. **mail.jar**: 这个文件包含了...
在实现Android发送邮件功能时,通常会遵循以下步骤: 1. 引入库:将这三个库文件添加到项目的`libs`目录下,并在项目构建路径中包含它们。 2. 创建Session对象:首先,需要配置一个`Properties`对象来设置邮件...
这个"android发送邮件的jar包"正是为了帮助开发者实现这一功能。它包含了一些必要的库和类,使得通过JavaMail API在Android环境中发送邮件变得更加简单。下面我们将深入探讨相关知识点。 首先,JavaMail API是一个...
在Android平台上,开发...这个示例展示了如何配置SMTP服务器信息,创建一个邮件,设置发件人、收件人、主题和内容,然后发送邮件的基本流程。注意,实际使用时需要根据你的邮件服务商提供的SMTP服务器信息进行调整。
在Android平台上实现邮件发送功能是一项常见的任务,尤其对于开发者来说,了解如何正确地集成和使用邮件服务至关重要。这里我们将深入探讨如何使用`commons-net-3.3.jar`和`mail.jar`这两个核心邮件包来实现在...
这个名为"ANDROID发送邮件用的JAR"的压缩包文件提供了一个方便的解决方案,支持在静默状态下发送邮件,这意味着它可以在不需用户交互的情况下进行操作。这通常涉及到集成JavaMail API和相关的JAR库。 1. **JavaMail...
在Android平台上,开发一款应用程序来发送邮件是一项常见的需求。这个"android邮件发送demo"就是针对这一功能的一个示例代码,可以帮助开发者理解并实现通过Android应用发送邮件的功能。在这个项目中,我们将探讨...
以上是根据"Android发邮件源码:IMAPMail.zip"的标题和描述推测出的一些关键知识点。具体到压缩包内的"IMAPMail"文件,可能包含了实现这些功能的类和方法。开发者在使用这段源码时,需要根据自己的项目需求进行适当...
在Android平台上实现邮件发送功能,通常涉及到SMTP(Simple Mail Transfer Protocol)服务和JavaMail API。以下将详细讲解如何在Android应用中编写代码来发送邮件。 首先,你需要在Android项目中引入JavaMail API的...
这通常涉及到JavaMail API的使用,而“android发邮件用的mail有关的三个jar包”正是为了实现这一功能所需的库文件。这些jar包包含了处理SMTP(简单邮件传输协议)和其他邮件传输协议所需的核心类和方法。 首先,...
标题提到的"android发送邮件三件套mail.jar activation.jar additional.jar"是三个关键的JavaMail库,它们提供了发送邮件所需的功能支持。以下是这三个库文件的详细解释以及如何在Android项目中使用它们: 1. **...
android 发送邮件的工具类的源码 可以带附件的哦
本文实例讲述了Android发送邮件的方法。分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的。如何实现它呢?下面以简单的例子进行说明。 程序如下: import java.util.regex....
在Android平台上,发送电子邮件是一项常见的任务,而JavaMail API是一个强大的工具,可以帮助开发者实现这个功能。这个压缩包包含了实现这一功能所需的关键库文件:mail.jar、activation.jar和additional.jar。 ...