1)需要导入3个jar包:activation.jar additionnal.jar mail.jar
2)发件箱需要开启SMTP服务
/**
* 简单邮件(不带附件的邮件)发送器
*/
public class SimpleMailSender
{
/**
* 以文本格式发送邮件
* @param mailInfo 待发送的邮件的信息
*/
public boolean sendTextMail(MailSenderInfo mailInfo)
{
// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
if (mailInfo.isValidate())
{
// 如果需要身份认证,则创建一个密码验证器
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
try
{
// 根据session创建一个邮件消息
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 (MessagingException ex)
{
ex.printStackTrace();
}
return false;
}
/**
* 以HTML格式发送邮件
* @param mailInfo 待发送的邮件信息
*/
public static boolean sendHtmlMail(MailSenderInfo mailInfo)
{
// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
//如果需要身份认证,则创建一个密码验证器
if (mailInfo.isValidate())
{
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
try {
// 根据session创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 创建邮件发送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 设置邮件消息的发送者
mailMessage.setFrom(from);
// 创建邮件的接收者地址,并设置到邮件消息中
Address to = new InternetAddress(mailInfo.getToAddress());
// Message.RecipientType.TO属性表示接收者的类型为TO
mailMessage.setRecipient(Message.RecipientType.TO,to);
// 设置邮件消息的主题
mailMessage.setSubject(mailInfo.getSubject());
// 设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
Multipart mainPart = new MimeMultipart();
// 创建一个包含HTML内容的MimeBodyPart
BodyPart html = new MimeBodyPart();
// 设置HTML内容
html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");
mainPart.addBodyPart(html);
// 将MiniMultipart对象设置为邮件内容
mailMessage.setContent(mainPart);
// 发送邮件
Transport.send(mailMessage);
return true;
} catch (MessagingException ex) {
ex.printStackTrace();
}
return false;
}
}
详细代码见附件
分享到:
相关推荐
在Android平台上实现邮件发送...以上就是关于“Android客户端发送邮件”的详细知识点,涵盖了SMTP服务、JavaMail API的使用、授权机制以及安全连接等方面,这些内容对于开发能够发送邮件的Android应用程序至关重要。
对于发送邮件,我们可以使用JavaMail API,这是一个用于处理邮件的开源库。由于JavaMail不直接支持Android,我们需要使用一个专门为Android优化的版本,如“Android JavaMail”。确保在项目的build.gradle文件中添加...
在Android平台上,发送邮件有多种方法,每种方式都有其适用场景和优缺点。下面将详细介绍几种常见的Android邮件发送方式。 1. **使用Intent启动邮件应用** Android系统内置了对邮件应用的支持,可以通过Intent来...
首先,我们原本可以直接通过Intent来调用系统邮件客户端发送邮件,但是这种发送需要跳转activity很不方便,所以我打算自己通过smtp协议发送邮件。很幸运,在google code上有一个现成的javaMail的java邮件客户端,...
首先,我们原本可以直接通过Intent来调用系统邮件客户端发送邮件,但是这种发送需要跳转activity很不方便,所以我打算自己通过smtp协议发送邮件。很幸运,在google code上有一个现成的javaMail的java邮件客户端,...
在Android平台上,发送邮件功能是常见的需求,无论是用于用户反馈、分享内容还是自动化服务。本文将深入探讨如何在Android应用中实现后台发送邮件以及如何调用第三方程序来完成这一任务。 首先,Android发送邮件...
QQ和163作为中国两大主流的电子邮件服务提供商,他们的邮箱服务在Android客户端上都有很好的支持。本篇文章将详细探讨如何在Android应用程序中集成QQ邮箱和163邮箱的服务,并提供一个基本的邮件功能实现的Demo示例。...
Android意图调用系统电子邮件客户端发送邮件 Android Intent,携带意图的对象是从一个组件到应用程序内或应用程序外的另一个组件的消息。 您并不总是需要从头开始构建电子邮件应用程序,大多数 android 设备都带有...
在Android平台上,开发一款能够调用谷歌SMTP服务发送邮件的应用是一项常见的需求。这份"Android高级应用源码-Android调用谷歌STMP发送邮件 MailDemo.zip"提供了完整的示例代码,帮助开发者理解并实现这一功能。下面...
在Android平台上开发一款邮件客户端是一项复杂而重要的任务,它涉及到用户与邮件服务器的交互、邮件的接收和发送、以及各种编码格式的解析。本项目"Android邮件客户端Demo"提供了一个全面的解决方案,采用JavaMail...
1. 邮件协议:JavaMail支持多种邮件传输协议,如SMTP(Simple Mail Transfer Protocol)用于发送邮件,POP3(Post Office Protocol version 3)和IMAP4(Internet Message Access Protocol version 4)用于接收邮件...
- **推送服务**: 基于XMPP的推送服务可以实现实时通知,通过服务器向客户端发送消息,即使应用在后台或关闭状态下也能收到。 4. **调试与测试**: - 使用XMPP客户端工具(如Psi或Gajim)模拟服务器交互,验证...
5. **电子邮件协议**:Android邮件客户端通常使用POP3或IMAP协议来接收邮件,SMTP协议来发送邮件。理解这些协议的工作原理对于实现邮件功能至关重要。 6. **Intent**:在Android中,Intent用于启动一个新的操作,如...
本方案详述了如何使用网易163邮箱作为后台服务来实现在Android客户端发送邮件,尤其是验证码。这一过程涉及到Android的权限管理、网络通信以及与163邮箱的API交互。 首先,我们需要在AndroidManifest.xml文件中添加...
使用`Intent.createChooser()`方法创建一个邮件应用选择器,这样用户可以选择他们喜欢的邮件客户端来发送邮件。如果不指定选择器,系统可能会默认使用已设置的邮件应用。 5. **处理权限** 在Android 6.0及以上...
2. UI设计:使用Android的Material Design组件和布局,构建用户友好的界面,如收件箱、草稿箱、已发送邮件等视图。 3. 异步操作:考虑到邮件收发可能涉及大量的网络通信,应使用AsyncTask或其他异步处理机制,防止...
首先,我们要知道在Android中发送邮件的核心依赖于JavaMail API和Android的Intent系统。JavaMail API是一个跨平台的邮件处理库,而Intent则是Android用来启动其他应用程序组件(如邮件应用)的方式。 1. **使用...
在IT行业中,Android客户端与Java服务端的交互是应用程序开发中的关键部分,特别是在移动应用开发中。本示例中,我们将探讨如何实现Android客户端向Java服务端发送联系人信息的基本流程,这通常涉及到网络编程、数据...
这种方式的优点是用户可以选择自己喜欢的邮件客户端来发送邮件,但缺点是无法直接处理附件。 ```java Intent intent = new Intent(Intent.ACTION_SENDTO); intent.setData(Uri.parse("mailto:recipient@example....