这里是我的空间,是我用来记录点滴的沃土...

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

最近项目中需要一个功能是将用户的反馈信息直接发送给我们,又不想调用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");
    }
}

 

 

posted @ 2013-08-30 11:17  wsx2miao  Views(7135)  Comments(4Edit  收藏  举报
这里是我的空间,是我用来记录点滴的沃土...