Android发送邮件mark

原创 2016年08月30日 11:36:40
public class MailSender {

    private static final String LOG_TAG = MailSender.class.getSimpleName();
    private static final int PORT = 25;
    /**
     * 以文本格式发送邮件
     * @param sender 发件人邮箱
     * @param encryptPassword 邮箱密码
     * @param smtp 服务器地址
     * @param subject 主题、标题
     * @param content 内容
     * @param file 附件路径
     * @param maillists 收件人邮箱列表
     */
    public static boolean sendTextMail(String sender, String encryptPassword, String smtp, String subject, String content, String file,
            String[] maillists) {
        if (maillists == null || maillists.length == 0 || ("".equals(maillists[0].trim()))) {
            return false;
        } else {
            // Get system properties
            Properties props = new Properties();

            // Setup mail server
            props.put("mail.smtp.host", smtp);
            props.put("mail.smtp.port", PORT);
            // Get session
            props.put("mail.smtp.auth", "true"); // 如果需要密码验证,把这里的false改成true

            // 判断是否需要身份认证
            CustomizedAuthenticator authenticator = null;
            if (true) {
                // 如果需要身份认证,则创建一个密码验证器
                authenticator = new CustomizedAuthenticator(sender, encryptPassword);
            }
            // 根据邮件会话属性和密码验证器构造一个发送邮件的session
            Session sendMailSession = Session.getInstance(props, authenticator);
            try {
                // 根据session创建一个邮件消息
                Message mailMessage = new MimeMessage(sendMailSession);
                // 创建邮件发送者地址
                Address from = new InternetAddress(sender);
                // 设置邮件消息的发送者
                mailMessage.setFrom(from);
                // 创建邮件的接收者地址,并设置到邮件消息中
                for (int i = 0; i < maillists.length; i++) {
                    // Message.RecipientType.TO属性表示接收者的类型为TO
                    mailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(maillists[i]));
                }

                // 设置邮件消息的主题
                mailMessage.setSubject(subject);
                // 设置邮件消息发送的时间
                mailMessage.setSentDate(new Date());

                Multipart multipart = new MimeMultipart();
                BodyPart bodyPart = new MimeBodyPart();
                bodyPart.setText(content);
                multipart.addBodyPart(bodyPart);

                File attach = new File(file);
                if (attach.exists()) {
                    MimeBodyPart attachPart = new MimeBodyPart();
                    DataSource source = new FileDataSource(attach);
                    attachPart.setDataHandler(new DataHandler(source));
                    attachPart.setFileName(attach.getName());

                    multipart.addBodyPart(attachPart);
                }
                mailMessage.setContent(multipart);
                MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
                mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
                mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
                mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
                mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
                mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
                CommandMap.setDefaultCommandMap(mc);
                Transport.send(mailMessage);
                return true;
            } catch (MessagingException ex) {
                ex.printStackTrace();
            }
        }
        return false;
    }
}

class CustomizedAuthenticator extends Authenticator {
    String userName = null;
    String password = null;

    public CustomizedAuthenticator() {
    }

    public CustomizedAuthenticator(String username, String password) {
        this.userName = username;
        this.password = password;
    }

    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(userName, password);
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 发送邮件

  • 2014年05月06日 11:51
  • 2.42MB
  • 下载

Android发送邮件demo

  • 2016年01月05日 17:28
  • 7.68MB
  • 下载

android里发送邮件mail的几种方式

在android里进行邮件客户端开发可以有两种方式:   在邮件客户端的设计中,可以采用两种方法。 l 一种是调用android系统自带的邮件服务 优点:这种方法比较简单易用 缺点:发送邮件...
  • qqGrid
  • qqGrid
  • 2014年10月23日 19:15
  • 5041

Android 全局异常捕获后台发送邮件

  • 2016年06月30日 13:11
  • 3.83MB
  • 下载

Android中使用JavaMail发送邮件

  • 2013年10月25日 19:24
  • 530KB
  • 下载

Android发送邮件到指定邮箱(可带附件)

ss

Android用JavaMail发送邮件

  • 2014年10月26日 22:54
  • 16KB
  • 下载

android 第三方库发送邮件

  • 2015年09月15日 16:46
  • 1.52MB
  • 下载

Android中使用JavaMail发送邮件ZZ

http://www.linuxidc.com/Linux/2012-05/59805.htm Android中使用JavaMail发送邮件        项目中有一个需求:当Androi...

Android后台发送邮件

  • 2014年12月01日 17:24
  • 3.43MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android发送邮件mark
举报原因:
原因补充:

(最多只允许输入30个字)