您的位置:首页 > 移动开发 > Android开发

Android中应用JavaMail进行邮件发送(工具类)

2013-08-30 11:17 633 查看
最近项目中需要一个功能是将用户的反馈信息直接发送给我们,又不想调用Android的默认邮件发送,于是就是用了JavaMail-Android,废话少说,首先要将android-javamail的三个包倒进项目:如图


下面是工具类的代码:

package com.windy.android_javamail;

/**
* @作者:王树新
* @日期:2013-08-30
* @描述:Android中应用JavaMail进行邮件发送
*/
import java.util.Properties;

import javax.activation.DataHandler;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.util.ByteArrayDataSource;

import android.util.Log;

public class EmailUtils {
/**
* 邮件发送程序
*
* @param to
*            接受人
* @param subject
*            邮件主题
* @param content
*            邮件内容
* @throws Exception
* @throws MessagingException
*/
public static void sendEmail(String to, String subject, String content) throws Exception, MessagingException {
String host = "smtp.qq.com";
String address = "545099227@qq.com";
String from = "545099227@qq.com";
String password = "密码";// 密码
if ("".equals(to) || to == null) {
to = "545099227@qq.com";
}
String port = "25";
SendEmail(host, address, from, password, to, port, subject, content);
}

/**
* 邮件发送程序
*
* @param host
*            邮件服务器 如:smtp.qq.com
* @param address
*            发送邮件的地址 如:545099227@qq.com
* @param from
*            来自: wsx2miao@qq.com
* @param password
*            您的邮箱密码
* @param to
*            接收人
* @param port
*            端口(QQ:25)
* @param subject
*            邮件主题
* @param content
*            邮件内容
* @throws Exception
*/
public static void SendEmail(String host, String address, String from, String password, String to, String port, String subject, String content) throws Exception {
Multipart multiPart;
String finalString = "";

Properties props = System.getProperties();
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.user", address);
props.put("mail.smtp.password", password);
props.put("mail.smtp.port", port);
props.put("mail.smtp.auth", "true");
Log.i("Check", "done pops");
Session session = Session.getDefaultInstance(props, null);
DataHandler handler = new DataHandler(new ByteArrayDataSource(finalString.getBytes(), "text/plain"));
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setDataHandler(handler);
Log.i("Check", "done sessions");

multiPart = new MimeMultipart();
InternetAddress toAddress;
toAddress = new InternetAddress(to);
message.addRecipient(Message.RecipientType.TO, toAddress);
Log.i("Check", "added recipient");
message.setSubject(subject);
message.setContent(multiPart);
message.setText(content);

Log.i("check", "transport");
Transport transport = session.getTransport("smtp");
Log.i("check", "connecting");
transport.connect(host, address, password);
Log.i("check", "wana send");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
Log.i("check", "sent");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: