`
dyingbleed
  • 浏览: 117362 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

【Android】发送Email(内置Gmail和JavaMail)

 
阅读更多

Android发送Email的两种方法:

 

方法一:通过Intent调用内置的Gmail发送邮件

优点:简单、方便

缺点:缺少灵活性,只能使用关联的gmail发送邮件

 

示例代码:

 

 

String[] recipients = {"接收方邮件地址", "接收方邮件地址"};
String subject = "邮件标题";
String text = "邮件内容";
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, recipients);
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, text);
startActivity(Intent.createChooser(intent, "Sending..."));
 

方法二:使用JavaMail发送邮件

优点:灵活

缺点:复杂,配置麻烦

 

配置步骤:

 

  1. 下载Android版本JavaMail包,additional.jar、mail.jar和activation.jar,下载地址JavaMail-Android

  2. 在项目与src同一目录级别下,新建文件夹lib,将下载的3个jar包放入该文件夹

  3. 右键->Properties->Java Build Path->Libraries,选择Add External JARs,找到项目下lib目录的3个jar包

实现步骤:

 

  1. 建立与邮件服务器间的会话Session

  2. 构建邮件消息MINEMessage

  3. Transport发送邮件

注意:

AndroidManifest下添加网络权限

配置会话Session的Properties时,值为String型"true"和"false",而不是布尔型

 

 

示例代码:

 

package dyingbleed.iteye;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.util.ByteArrayDataSource;

public class MailSender extends Authenticator {
	
	public static final String host = "smtp.gmail.com"; 
	
	private final String userName;
	private final String password;
	
	private Session session;
	
	public MailSender(String userName, String password) {
		this.userName = userName;
		this.password = password;
		
		initialize(); //初始化
	}
	
	private void initialize() {
		Properties props = new Properties();
		props.setProperty("mail.transport.protocol", "smtp");
		props.setProperty("mail.host", host);
		props.put("mail.smtp.auth", true);
		
		session = Session.getDefaultInstance(props, this);
	}

	@Override
	protected PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(userName, password);
	}
	
	/**
	 * 发送Email
	 * @param subject 标题
	 * @param body 内容
	 * @param sender 发送者
	 * @param recipients 接收者
	 * @throws MessagingException 
	 * @throws AddressException 
	 * */
	public synchronized void sendMail(String subject, String body, String sender, String recipients) throws AddressException, MessagingException {
		MimeMessage message = new MimeMessage(session);
		DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));
		
		/*
		 * 设置MIME消息
		 * */
		message.setSender(new InternetAddress(sender));
		message.setSubject(subject);
		message.setDataHandler(handler);
		if(recipients.contains(",")) {
			message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
		} else {
			message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
		}
		
		Transport.send(message); //发送
	}
}
分享到:
评论

相关推荐

    Gmail邮件通过JavaMail发送(不带附件与带一个附件)

    本教程将详细讲解如何使用JavaMail API在Gmail上发送邮件,包括不带附件和带有一个附件的情况。 首先,JavaMail是一个开源的Java库,它提供了用于处理邮件的标准API。在使用JavaMail发送邮件前,你需要在项目中引入...

    android 发送email所需jar包

    在Android平台上发送电子邮件,开发者通常会遇到需要引入外部库或者jar包的情况,因为Android系统本身并未内置SMTP(Simple Mail Transfer Protocol)服务来直接发送邮件。本文将详细介绍如何在Android项目中使用jar...

    Android 使用javamail发送邮件

    总的来说,"Android使用javamail发送邮件"这个主题涵盖了Android平台上利用JavaMail API实现邮件发送的基本流程和注意事项,包括设置SMTP服务器、构建邮件消息、处理附件以及可能的安全性和用户体验优化。...

    Android发送邮件使用的JavaMail包

    这个库支持多种邮件协议,如SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议),使得开发者能够从Android应用中发送和接收邮件。JavaMail API的主要类包括`Session`(负责配置邮件会话)、`...

    Android使用Javamail发送Email群发加附件

    在Android应用开发中,有时需要实现自定义的邮件发送功能,而不是依赖系统内置的邮件客户端。本篇文章将详细介绍如何使用JavaMail API在Android中发送带有附件并进行群发的电子邮件。首先,我们需要理解JavaMail API...

    android使用javamail发送邮件jar包

    JavaMail是一个开源库,它提供了一组API,使得在Java环境中发送和接收电子邮件变得简单。在Android项目中,由于原生的Android SDK并不直接支持JavaMail,因此我们需要引入额外的库来实现这一功能。本教程将介绍如何...

    Android-一个Android下发送Email的库

    首先,这个库可能是对JavaMail API的一个封装,JavaMail API是Java平台上的标准邮件处理库,它允许开发者创建、发送和接收邮件。在Android中,由于JavaMail API比较庞大,不适合直接在移动设备上使用,所以通常会...

    JavaMail收发Gmail邮件

    ### JavaMail收发Gmail邮件知识点详解 #### 一、JavaMail简介 JavaMail API是Java平台中的一个标准扩展库,用于发送、接收以及管理电子邮件。它提供了丰富的接口来实现邮件的各种操作,如构建复杂的MIME消息、处理...

    android发送EMail附近也可发送

    标题"android发送EMail附近也可发送"暗示了这是一个可以在Android设备上实现的邮件发送功能,无论用户在何处,只要设备连接到网络,就能发送邮件。这个功能对于旅行者、商务人士或者需要实时通信的用户来说非常实用...

    android JavaMail发送邮件

    http://stackoverflow.com/questions/2020088/sending-email-in-android-using-javamail-api-without-using-the-default-android-app的源码,已实现可发送邮件。

    Android 发送电子邮件 EMAIL 源码

    以下是对这个"Android发送电子邮件EMAIL源码"的详细解析。 首先,我们需要理解Android系统中发送邮件的基本流程。这通常涉及到以下几个步骤: 1. **构建邮件消息对象**:在Android中,我们使用`java.mail`库(通过...

    android 下gmail邮件包括附件发送和接收

    在Android平台上,Gmail邮件的发送和接收是开发者经常遇到的任务,特别是在处理包含附件的邮件时,这需要对Android的Mail API和Gmail服务有深入的理解。以下将详细阐述这个主题,包括邮件的构建、附件处理以及使用...

    javaMail实现文件接收与发送

    JavaMail 是一个强大的开源库,专门用于在Java应用程序中处理电子邮件的发送和接收。它提供了对标准SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)的支持,使得开发者能够方便地构建邮件...

    android自动发送Email

    JavaMail API是Java平台上用于处理邮件的库,提供了创建、发送和接收电子邮件的能力。在Android中,由于原生JavaMail API不完全支持,我们可以使用开源项目“Android JavaMail”或“Android K-9 Mail”的部分组件来...

    用javaMail实现发送Email

    JavaMail是Java编程语言中用于处理邮件的一套API,它提供了丰富的功能,使得开发者能够方便地构建邮件发送和接收的应用程序。本篇文章将详细介绍如何利用JavaMail库在Java环境中实现发送电子邮件的功能。 首先,...

    Android JavaMail邮件发送

    JavaMail是一个开源库,它提供了一套完整的API来处理邮件发送和接收。在Android应用开发中,我们可以利用JavaMail API来构建邮件服务,发送包含附件的邮件。以下是对这个主题的详细讲解: 首先,我们需要在项目中...

    javamail&commons-email

    总之,JavaMail和Apache Commons Email是强大的邮件处理工具,它们极大地简化了在Java应用中发送和接收邮件的过程。正确理解和使用这两个库,可以帮助开发者高效地实现邮件功能,提高应用的用户体验。

    Android应用源码之AndroidEmail(邮件收发).zip

    2. **JavaMail API**:AndroidEmail项目使用了JavaMail API,这是一个广泛使用的库,用于处理电子邮件。它包括了处理SMTP(Simple Mail Transfer Protocol)用于发送邮件,以及POP3(Post Office Protocol version 3...

    Android使用JavaMail后台发送邮件遇到的一些问题

    在Android应用开发中,使用JavaMail库来实现后台发送邮件是一项常见的任务。JavaMail是一个功能强大的API,可以处理SMTP(简单邮件传输协议)和其他邮件协议,使得开发者可以在Android平台上实现邮件服务。本篇文章...

    Android用JavaMail发送邮件

    JavaMail是一个强大的Java库,它提供了用于发送和接收电子邮件的标准接口。JavaMail构建在JavaBeans基础上,支持多种协议(如SMTP、POP3、IMAP等),并允许开发者以统一的方式来处理这些协议,从而简化了电子邮件...

Global site tag (gtag.js) - Google Analytics