zoukankan      html  css  js  c++  java
  • 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");
        }
    }
  • 相关阅读:
    c++:资源管理(RAII)、new/delete的使用、接口设计与声明、swap函数
    C++普通链表增删、倒序打印
    Android-UI:按钮监听&文字/图片/进度条&动态变更&dialog&布局&自定义布局/控件/响应事件
    Android-活动生命周期&Bundle回收临时数据&活动启动模式&常用技巧
    C++字符串空格替换题
    C++二维数组查找题
    c++:const、初始化、copy构造/析构/赋值函数
    C++赋值运算符函数
    Android-活动创建&Toast&Menu&Intent
    用yarn代替cnpm,cnpm漏包有点严重
  • 原文地址:https://www.cnblogs.com/wangsx/p/3291036.html
Copyright © 2011-2022 走看看