`
chenzhuo1016
  • 浏览: 26427 次
  • 来自: ...
社区版块
存档分类
最新评论

Java Mail的使用

    博客分类:
  • java
阅读更多
Java Mail的使用
一.用于进行用户认证的类(PopupAuthenticator):
import javax.mail.*;
public class PopupAuthenticator extends Authenticator{
    String username=null;
    String password=null;
    public PopupAuthenticator(String user, String pass) {
        username = user;
        password = pass;
    }
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(username, password);
    }
}
二.用于封装发送邮件的用户信息的类(MailuserInfo):
public class MailuserInfo {  
    private int id;
    //邮件服务器地址
    private String host;
    //一定要是有效的Email地址(否则无法通过认证)
    private String from;
    //邮件服务器用户认证
    private String user;
    private String password;
    public String getFrom() {
        return from;
    }
    public void setFrom(String from) {
        this.from = from;
    }
    public String getHost() {
        return host;
    }
    public void setHost(String host) {
        this.host = host;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getUser() {
        return user;
    }
    public void setUser(String user) {
        this.user = user;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
}
三.用于封装具体邮件信息的类(MailEntry):
public class MailEntry {
    //抄送的地址
    private String cc;
    //发送的地址
    private String to;
    //邮件主题
    private String title;
    //邮件附件
    private String file;
    //邮件正文
    private String content;
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getTo() {
        return to;
    }
    public void setTo(String to) {
        this.to = to;
    }
    public String getFile() {
        return file;
    }
    public void setFile(String file) {
        this.file = file;
    }
    public String getCc() {
        return cc;
    }
    public void setCc(String cc) {
        this.cc = cc;
    }
}
四.用于实现发送邮件功能的类(MailUtil):
import java.io.File;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class MailUtil {
    public static void send(MailuserInfo info,MailEntry entry)
    {
        try {
            Properties properties = System.getProperties();
            //邮件服务器
            properties.put("mail.smtp.host", info.getHost());
            //设置邮件发送协议
            properties.put("mail.transport.protocol", "smtp");
            //进行用户认证
            properties.put("mail.smtp.auth","true");
            //邮件服务器用户认证
            PopupAuthenticator popAuthenticator = new PopupAuthenticator(info.getUser(),info.getPassword());
                   
            Session session = Session.getDefaultInstance(properties, popAuthenticator);
            session.setDebug(false);
            Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(info.getFrom()));
            InternetAddress[] addresses = null;//{ new InternetAddress(entry.getTo()) };
            String[] toArrays = entry.getTo().split(",");
            addresses = new InternetAddress[toArrays.length];
           
            for (int i = 0; i < toArrays.length; i++) {
                addresses[i] = new InternetAddress(toArrays[i]);
                System.out.println("发送的地址为:" + toArrays[i]);
            }
           
            if(entry.getCc() != null && (!"".equals(entry.getCc())))
            {
                String[] ccArrays = entry.getCc().split(",");
                InternetAddress[] addresscc = new InternetAddress[ccArrays.length];
               
                for (int i = 0; i < ccArrays.length; i++) {
                    addresscc[i] = new InternetAddress(ccArrays[i]);
                    System.out.println("抄送的地址为:" + ccArrays[i]);
                }
                msg.setRecipients(Message.RecipientType.CC, addresscc);
            }
            //设置邮件接收方的地址
            msg.setRecipients(Message.RecipientType.TO, addresses);
            //设置邮件主题
            msg.setSubject(entry.getTitle());
            //设置邮件发送日期
            msg.setSentDate(new Date());
            //邮件内容,附件等内容均添加到其中后再生成MimeMessage对象
            Multipart multipart = new MimeMultipart();
            //设置邮件正文
            if(entry.getContent() != null)
            {               
                System.out.println("设置邮件正文:" + entry.getContent());
                BodyPart body = new MimeBodyPart();
                body.setText(entry.getContent());               
                multipart.addBodyPart(body);               
            }               
           
            if(entry.getFile() != null && !entry.getFile().equals(""))
            {
                BodyPart bodyPart = new MimeBodyPart();
                bodyPart.setText("文件");
               
                //Multipart multipart = new MimeMultipart();
               
                //此处设置邮件的附件
                DataSource source = new FileDataSource(entry.getFile());
                bodyPart.setDataHandler(new DataHandler(source));
                File file = new File(entry.getFile());
                bodyPart.setFileName(file.getName());
                multipart.addBodyPart(bodyPart);               
                System.out.println("发送附件..");
            }
           
            msg.setContent(multipart);
           
            Transport transport = session.getTransport("smtp");
            System.out.println("连接邮件服务器!");
            transport.connect((String)properties.get("mail.smtp.host"),info.getUser(),info.getPassword());
            System.out.println("发送邮件....");
            transport.send(msg,msg.getRecipients(Message.RecipientType.TO));
            System.out.println("发送成功!");
            transport.close();
            //Transport.send(msg);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
注:在使用时需要导入的包:activation.jar,mail.jar.

分享到:
评论

相关推荐

    java mail

    java mailjava mailjava mailjava mailjava mailjava mailjava mailjava mail

    \\(^_^)/ Java Mail

    6. **MIME 编码**:在处理包含非ASCII字符的邮件或者附件时,Java Mail 使用MIME(Multipurpose Internet Mail Extensions)编码规则,以确保邮件在传输过程中不会被破坏。 7. **认证机制**:Java Mail 支持多种...

    java mail 1.4.5 jar_source 天涯浪子

    5. **使用场景**:Java Mail 1.4.5 可用于各种需要邮件功能的 Java 应用,如企业级应用的后台服务、自动化邮件通知系统、Web应用的用户验证服务等。 6. **注意事项**:使用 Java Mail 时,开发者需要注意配置正确的...

    Java Mail.rar

    在实际开发中,使用Java Mail API时,我们需要首先添加对应的jar包到项目的类路径中,然后创建 `Session` 实例,配置邮件服务器的相关参数,最后通过 `Transport` 或 `Store` 对象进行邮件的发送和接收操作。...

    使用Java mail API访问Lotus Domino邮箱

    Java Mail API 是一个广泛使用的Java库,用于处理电子邮件通信,包括发送、接收和管理邮件。在本场景中,我们将深入探讨如何使用Java Mail API来访问Lotus Domino邮箱系统。Lotus Domino是由IBM开发的企业级协作平台...

    mail.jar+activation.jar+两个java版发送邮件实例

    `mail.jar` 和 `activation.jar` 是两个关键的Java库,它们提供了JavaMail API,使得在Java程序中发送邮件变得可能。`activation.jar` 包含了JavaBeans Activation Framework (JAF),它用于识别和处理不同的MIME类型...

    Java mail-1.4.7 jar包

    Java Mail 是一个开源的Java库,它为Java应用程序提供了与各种邮件系统交互的能力。这个"mail-1.4.7.jar"是Java Mail的一个版本,主要...对于开发者而言,理解并熟练使用Java Mail API是提升工作效率的一个关键技能。

    Java_Mail.zip_java_java mail_java.mail_mail

    在使用Java Mail API时,我们需要了解以下几个核心概念: 1. **Session**: Session是Java Mail中的核心对象,它是所有邮件操作的上下文。通过设置属性和提供密码验证信息,我们可以创建一个Session实例来配置邮件...

    java-mail开发包

    4. **mailapi.jar**:包含了Java Mail API的主要接口和抽象类,是使用Java Mail的基础。 使用Java Mail API发送邮件的基本步骤如下: 1. **创建Session**:首先,需要创建一个`Session`对象,配置邮件服务器的相关...

    Java Mail 发布邮件

    这个压缩包文件很可能包含了一组示例代码或工具,帮助我们理解如何使用Java Mail API来实现邮件功能。 在Java中,发送邮件主要依赖于JavaMail API和Java Activation Framework (JAF)。JavaMail API负责邮件的创建、...

    java_mail 1.5.zip

    总之,这个“java_mail 1.5.zip”压缩包对于Java开发者来说是一份宝贵的资源,通过学习源代码,不仅可以掌握如何使用JavaMail API发送邮件,还能深入了解邮件处理背后的机制,提高邮件应用的开发能力。

    Java.mail开发包

    2. **邮件接收**:使用POP3(Post Office Protocol version 3)或IMAP(Internet Message Access Protocol)协议,Java Mail 可以从邮件服务器下载新的邮件,甚至支持离线模式。 3. **MIME支持**:MIME...

    java mail使用qq邮箱发邮件的配置方法

    在本场景中,我们关注的是如何使用Java Mail通过QQ邮箱发送邮件。下面将详细介绍这个过程,包括必要的配置和步骤。 首先,确保你已经在项目中引入了Java Mail的相关依赖。通常,这会是`javax.mail`和`javax.mail-...

    java-mail-1.4

    在“java-mail-1.4”这个版本中,我们主要关注的是 JavaMail 1.4 版本的相关特性、使用方法以及重要概念。 JavaMail 提供了与多种邮件协议(如 SMTP、POP3、IMAP)交互的能力,使得开发者能够轻松地在 Java 应用...

    java mail jar包

    该资源包含了java mail开发所需要的jar,如下: commons-email-1.2-bin.zip commons-email-1.4-bin.zip javamail_1.4.6.zip javamail_1.4.7.zip javax.mail.jar mailapi.jar smtp.jar

    java mail工具类

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个工具类的创建旨在简化邮件处理的复杂性,使开发者能够便捷地集成邮件功能。以下是对JavaMail工具类及其相关知识点的详细说明: 1. **...

    java mail课本源代码java web

    在使用Java Mail API时,首先需要引入相应的依赖库,例如 javax.mail 和 javax.mail.internet 包。接着,你需要配置邮件服务器的相关参数,如主机名、端口号、用户名和密码。这些信息通常会封装在一个Properties对象...

Global site tag (gtag.js) - Google Analytics