`
hualikejava
  • 浏览: 171628 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android 发送邮件

 
阅读更多

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发送邮件demo

    首先,Android发送邮件通常涉及到两个主要方法:一是通过集成SMTP(Simple Mail Transfer Protocol)服务在后台直接发送;二是通过Intent系统服务,唤起用户的邮件客户端来发送。这两种方法各有优缺点,适用于不同的...

    android邮件发送几种方式

    在Android平台上,发送邮件有多种方法,每种方式都有其适用场景和优缺点。下面将详细介绍几种常见的Android邮件发送方式。 1. **使用Intent启动邮件应用** Android系统内置了对邮件应用的支持,可以通过Intent来...

    android发送邮件

    在Android平台上实现邮件发送功能,通常涉及到SMTP(Simple Mail Transfer Protocol)服务和JavaMail API的使用。这是一个典型的网络通信和应用集成的过程,涉及到多个技术层面。以下是对这一知识点的详细阐述: 1....

    android 发送邮件功能

    在Android平台上实现发送邮件功能是一项常见的任务,尤其对于开发者来说,理解如何集成这一特性到应用程序中至关重要。本文将深入探讨如何在Android应用中构建并实现邮件发送功能。 首先,我们需要了解的是,...

    android 发邮件源码

    本项目“android 发邮件源码”提供了一个实际的示例,可以帮助开发者理解和实现这个功能。以下是对该源码工程中关键知识点的详细解释: 1. **JavaMail API**: Android开发中,发送邮件通常会用到JavaMail API,这是...

    Android发送邮件的jar.zip

    "Android发送邮件的jar.zip" 包含了几个关键的Java档案(JAR)文件,它们是实现这一功能的重要组件。下面将详细介绍这些JAR文件以及如何在Android应用中使用它们来发送邮件。 1. **mail.jar**: 这个文件包含了...

    android发送邮件的jar包

    这个"android发送邮件的jar包"正是为了帮助开发者实现这一功能。它包含了一些必要的库和类,使得通过JavaMail API在Android环境中发送邮件变得更加简单。下面我们将深入探讨相关知识点。 首先,JavaMail API是一个...

    Android发邮件用到的jar包

    在Android平台上,开发...这个示例展示了如何配置SMTP服务器信息,创建一个邮件,设置发件人、收件人、主题和内容,然后发送邮件的基本流程。注意,实际使用时需要根据你的邮件服务商提供的SMTP服务器信息进行调整。

    Android发送邮件功能实现

    在Android平台上实现邮件发送功能是一项常见的任务,尤其对于开发者来说,了解如何正确地集成和使用邮件服务至关重要。这里我们将深入探讨如何使用`commons-net-3.3.jar`和`mail.jar`这两个核心邮件包来实现在...

    ANDROID发送邮件用的JAR

    这个名为"ANDROID发送邮件用的JAR"的压缩包文件提供了一个方便的解决方案,支持在静默状态下发送邮件,这意味着它可以在不需用户交互的情况下进行操作。这通常涉及到集成JavaMail API和相关的JAR库。 1. **JavaMail...

    Android发送邮件mail.jar + activation.jar + additionnal.jar

    在实现Android发送邮件功能时,通常会遵循以下步骤: 1. 引入库:将这三个库文件添加到项目的`libs`目录下,并在项目构建路径中包含它们。 2. 创建Session对象:首先,需要配置一个`Properties`对象来设置邮件...

    android 邮件发送demo

    在Android平台上,开发一款应用程序来发送邮件是一项常见的需求。这个"android邮件发送demo"就是针对这一功能的一个示例代码,可以帮助开发者理解并实现通过Android应用发送邮件的功能。在这个项目中,我们将探讨...

    Android发邮件源码:IMAPMail.zip

    以上是根据"Android发邮件源码:IMAPMail.zip"的标题和描述推测出的一些关键知识点。具体到压缩包内的"IMAPMail"文件,可能包含了实现这些功能的类和方法。开发者在使用这段源码时,需要根据自己的项目需求进行适当...

    android发送邮件代码

    在Android平台上实现邮件发送功能,通常涉及到SMTP(Simple Mail Transfer Protocol)服务和JavaMail API。以下将详细讲解如何在Android应用中编写代码来发送邮件。 首先,你需要在Android项目中引入JavaMail API的...

    android发邮件用的mail有关的三个jar包

    这通常涉及到JavaMail API的使用,而“android发邮件用的mail有关的三个jar包”正是为了实现这一功能所需的库文件。这些jar包包含了处理SMTP(简单邮件传输协议)和其他邮件传输协议所需的核心类和方法。 首先,...

    android发送邮件三件套mail.jar activation.jar additional.jar最新版本2016.8.21

    标题提到的"android发送邮件三件套mail.jar activation.jar additional.jar"是三个关键的JavaMail库,它们提供了发送邮件所需的功能支持。以下是这三个库文件的详细解释以及如何在Android项目中使用它们: 1. **...

    android 发送邮件的工具类 源码

    android 发送邮件的工具类的源码 可以带附件的哦

    Android发送邮件的方法实例详解

    本文实例讲述了Android发送邮件的方法。分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的。如何实现它呢?下面以简单的例子进行说明。 程序如下: import java.util.regex....

    Android发送邮件使用的JavaMail包

    在Android平台上,发送电子邮件是一项常见的任务,而JavaMail API是一个强大的工具,可以帮助开发者实现这个功能。这个压缩包包含了实现这一功能所需的关键库文件:mail.jar、activation.jar和additional.jar。 ...

Global site tag (gtag.js) - Google Analytics