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");
    }
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM