`
sbfivwsll
  • 浏览: 63413 次
  • 性别: Icon_minigender_1
  • 来自: 四川
社区版块
存档分类
最新评论

java mail 发送邮件

 
阅读更多

啥也不说了,直接放代码,一切尽在代码中。。。

1、

要发送的邮件数据对象:

public class MailData
{
    /** 发件人的用户名。 */
    private String userName;

    /** 发件的密码。 */
    private String password;
    /** 发件人的邮件地址 */
    private String mailAddress;

    /** 收件人的地址列表。 */
    private String[] receiveAddress;

    /** 发送的pop邮箱服务器地址。 */
    private String smtp;

    /** 邮件主题。 */
    private String subject;

    /** 邮件正文。 */
    private String content;

    /** 邮件正文是否是纯文本。 */
    private boolean isHtml;

    private File[] files;

    // get/set方法...
}

 

public class MailSend
{
    /**
     * 发送邮件。
     * 
     * @param data
     *            邮件内容对象。
     * @throws Exception
     */
    public void sendMail(final MailData data) throws Exception
    {
        Session session = this.getSession(data);

        Message msg = new MimeMessage(session);

        this.setMailMsg(msg, data);

        Transport.send(msg);
    }

    /**
     * 设置邮件信息。包括邮件内容、标题、发送者、接收者、附件等信息。
     * 
     * @param msg
     *            Message对象。
     * @param data
     *            邮件信息内容。
     * @throws Exception
     */
    private void setMailMsg(Message msg, MailData data) throws Exception
    {
        // 设置邮件接收者。
        msg.addRecipients(Message.RecipientType.TO, Utils.toAddress(data.getReceiveAddresses()));

        // 设置邮件发送者。
        msg.setFrom(Utils.toAddress(data.getSendAddress()));

        // 设置邮件的标题。这里最好使用setHeader的方式,使用setSubject的方式无法指定编码格式,其它语言可能会乱码。
        // 如果这里的标题太长了的话,始终会有一部分会是乱码。这点还不知道如何修改。
        msg.setHeader("Subject", MimeUtility.encodeText(data.getSubject(), "utf-8", "B"));
        // msg.setSubject(data.getSubject());

        Multipart multipart = new MimeMultipart();

        this.setMailContentPart(data, multipart);

        msg.setContent(multipart);
    }

    /**
     * 设置邮件正文和附件。
     * 
     * @param data
     *            邮件的信息内容。
     * @param multipart
     *            邮件的对象。
     */
    private void setMailContentPart(MailData data, Multipart multipart) throws Exception
    {

        // 设置邮件内容。
        MimeBodyPart bPart = new MimeBodyPart();
        if (data.isHtml())
        {
            bPart.setContent(data.getContent(), "text/html;charset=UTF-8");
        }
        else
        {
            // 以text设置时要设置编码方式,最好为utf-8,不然其它语言可能乱码。
            bPart.setText(data.getContent(), "utf8");
        }
        multipart.addBodyPart(bPart);

        // 设置邮件附件。
        if (data.getFiles() != null)
        {
            for (File f : data.getFiles())
            {
                if ((f != null) && f.isFile())
                {
                    bPart = new MimeBodyPart();
                    DataSource source = new FileDataSource(f);
                    bPart.setDataHandler(new DataHandler(source));

                    // 设置文件名时要设置编码,不然会乱码的。最好指定编码格式为utf8
                    bPart.setFileName(MimeUtility.encodeText(f.getName(), "utf-8", "B"));
                    multipart.addBodyPart(bPart);
                }
            }
        }
    }

    /**
     * 根据邮件的服务器信息获取Session对象。
     * 
     * @param data
     *            邮件的服务器信息对象。
     * @return 返回获取的Session对象。
     */
    private Session getSession(final MailData data)
    {
        Properties pro = new Properties();
        // 设置邮件发送smtp服务器。
        pro.put("mail.smtp.host", data.getSmtp());
        // 设置发送邮件需要验证身份
        pro.put("mail.smtp.auth", "true");

        // 发送邮件的身份认证对象。
        Authenticator auth = new Authenticator()
        {
            @Override
            protected PasswordAuthentication getPasswordAuthentication()
            {
                return new PasswordAuthentication(data.getUserName(), data.getPassword());
            }
        };

        return Session.getDefaultInstance(pro, auth);
    }
}

 

分享到:
评论

相关推荐

    java mail发邮件

    在你提供的压缩包文件中,包含了三个关键元素:activation.jar、mail.jar以及SendMail.java,这些都是Java Mail发邮件所需的基本组件。 `activation.jar` 是JavaBeans Activation Framework (JAF) 的一部分,它是...

    java Mail 发送邮件及邮件附件

    Java Mail 发送邮件及邮件附件 Java Mail 是一个广泛使用的 Java 库,用于发送电子邮件。以下是 Java Mail 发送邮件及邮件附件的知识点。 Java Mail 简介 Java Mail 是一个 Java 库,提供了发送电子邮件的功能。...

    Java Mail 发送邮件

    ### Java Mail 发送邮件知识点详解 #### 一、概述 Java Mail API 是一个用于发送与接收电子邮件的标准 Java 库,支持多种协议如 SMTP (Simple Mail Transfer Protocol) 和 POP3 (Post Office Protocol version 3) ...

    java mail 发送邮件代码与架包

    Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和操作邮件。这个API提供了广泛的协议支持,包括SMTP(简单邮件传输协议)用于发送邮件,POP3和IMAP4用于接收邮件。在Java Mail中,...

    Java mail发送邮件

    利用Java mail发送邮件,用到的一些类,一些方法,写的很简陋

    使用 java mail 发送邮件

    要使用Java Mail发送邮件,首先需要添加相应的依赖库到项目中。对于Android项目,通常会通过Gradle来引入。 1. 添加依赖: 在项目的build.gradle文件中,添加以下依赖: ```groovy dependencies { ...

    Java Mail发送邮件脚本及所需全部Jar包

    下面我们将详细探讨Java Mail发送邮件脚本的核心知识点,以及在实际操作中可能需要的Jar包。 1. **JavaMail API**:JavaMail API是Java中处理电子邮件的标准库,由JavaMail项目维护。它提供了一系列接口和类,包括`...

    java mail发送邮件

    JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送、接收和其他相关任务。它提供了对各种邮件协议(如 SMTP、POP3 和 IMAP)的支持,并且可以与 MIME 格式的邮件内容配合使用,允许发送包含附件、HTML 内容等...

    java mail 发邮件 demo程序

    这个“java mail 发邮件 demo程序”是为了演示如何使用JavaMail API发送电子邮件而创建的一个简单示例。在这个DEMO程序中,我们将深入探讨JavaMail API的核心概念以及如何构建一个实际的邮件发送功能。 首先,...

    Java mail发送邮件(源代码带注释)

    这个标题“Java mail发送邮件(源代码带注释)”表明我们将讨论如何使用JavaMail API来实现电子邮件的发送功能。描述提到,通过简单的赋值和测试,我们可以快速实现邮件发送,这表明提供的源代码应该是一个易于理解且...

    用java mail发邮件源码,支持多种邮局,支持单发和群发

    Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和管理邮件。这个源码可能包含了一套完整的解决方案,可以与多种邮局(如Gmail, Yahoo, Hotmail等)进行交互,并且支持单个收件人和...

    java mail发送邮件(源代码+注释)

    Java Mail 是一个强大的开源API,用于处理电子邮件的发送和接收。这个API允许开发者在Java应用程序中集成邮件功能,包括SMTP(简单邮件传输协议)和POP3(邮局协议第三版)等邮件服务协议。本教程将详细介绍如何使用...

    java mail 邮件发送

    以下是一个简单的Java Mail发送邮件的示例代码: ```java import javax.mail.*; import javax.mail.internet.*; public class EmailSender { public static void main(String[] args) throws Exception { // ...

    java mail 发送QQ邮件

    要使用Java Mail发送QQ邮件,首先需要在QQ邮箱设置中开启“POP3/SMTP/IMAP”服务,并获取授权码。授权码是QQ邮箱为第三方应用提供的一种安全验证方式,不同于普通密码。 ### 3. 添加依赖 在Java项目中,我们需要...

    Java Mail邮件发送源码下载

    Java Mail邮件发送是Java开发中常见的一项功能,用于在应用程序中发送电子邮件。Java Mail API提供了一个标准的接口,使得开发者可以方便地实现SMTP(简单邮件传输协议)和其他邮件协议的功能。下面将详细介绍Java ...

    Java Mail demo (仅发送邮件)

    下面是一个简化的Java Mail发送邮件的步骤,展示了一些关键API的使用: 1. 引入Java Mail依赖:首先确保项目中包含了Java Mail的相关库,通常通过Maven或Gradle等构建工具添加依赖。 2. 创建Properties对象:设置...

Global site tag (gtag.js) - Google Analytics