`
starbhhc
  • 浏览: 658021 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

JavaMail实现邮件功能

 
阅读更多
Mailbox.java: 表示邮箱的一些信息

package common;   
  
public class Mailbox {   
    private String host;   
    private String name;   
    private String password;   
    private String from;   
    private String to;   
    private String subject;   
    private String content;   
       
    /**  
     *   
     * @param host  
     * @param name  
     * @param password  
     * @param mailInfo  
     */  
    public Mailbox(String host, String name, String password,MailInfo mailInfo) {   
        // TODO Auto-generated constructor stub   
        this.host = host;   
        this.name = name;   
        this.password = password;   
        this.from = mailInfo.getFrom();   
        this.to = mailInfo.getTo();   
        this.subject = mailInfo.getSubject();   
        this.content = mailInfo.getContent();   
    }   
       
    /**  
     *   
     * @return  
     */  
    public boolean sendTextMail(){   
        TextMail textMail = new TextMail(host,name,password);   
        textMail.setFrom(from);   
        textMail.setText(content);   
        textMail.setTo(to);   
        textMail.setSubject(subject);   
        return textMail.send();   
    }   
}  

MailInfo.java: 邮件的一些信息:from,to,suject,content

package common;   
  
public class MailInfo {   
    private String from;   
    private String to;   
    private String subject;   
    private String content;   
       
    /**  
     *   
     * @param from  
     * @param to  
     * @param subject  
     * @param content  
     */  
    public MailInfo(String from, String to, String subject, String content){   
        this.from = from;   
        this.to = to;   
        this.subject = subject;   
        this.content = content;   
    }   
       
    public String getFrom() {   
        return from;   
    }   
    public void setFrom(String from) {   
        this.from = from;   
    }   
    public String getTo() {   
        return to;   
    }   
    public void setTo(String to) {   
        this.to = to;   
    }   
    public String getSubject() {   
        return subject;   
    }   
    public void setSubject(String subject) {   
        this.subject = subject;   
    }   
    public String getContent() {   
        return content;   
    }   
    public void setContent(String content) {   
        this.content = content;   
    }   
       
}  

TextMail.java:对要发送的邮件进行初始化

package common;   
  
import java.util.Properties;   
import javax.mail.BodyPart;   
import javax.mail.Message;   
import javax.mail.MessagingException;   
import javax.mail.NoSuchProviderException;   
import javax.mail.Session;   
import javax.mail.Transport;   
import javax.mail.internet.AddressException;   
import javax.mail.internet.InternetAddress;   
import javax.mail.internet.MimeMessage;   
  
/**  
* function: Send a mail to the specific address  
* @author JAY  
*  
*/  
public class TextMail {   
    private MimeMessage message;   
    private Properties props;   
    private Session session;   
    private String name = "";   
    private String password = "";   
  
    /**  
     * complete the initialization  
     * @param host  
     * @param name  
     * @param password  
     */  
    public TextMail(String host, String name, String password){   
        this.name = name;   
        this.password = password;   
        props = System.getProperties();   
        //set the SMTP host   
        props.put("mail.smtp.host", host);   
        //set SMTP authorization   
        props.put("mail.smtp.auth", "true");   
        //get the mail session   
        MyAuthenticator auth = new MyAuthenticator(name,password);   
        session = Session.getDefaultInstance(props,auth);   
        //create MIME mail object   
        message = new MimeMessage(session);   
    }      
       
    /**  
     * set mail sender  
     * @param from  
     */  
    public void setFrom(String from){   
        try {   
            message.setFrom(new InternetAddress(from));   
        } catch (AddressException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        } catch (MessagingException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
    }   
       
    /**  
     * set mail recipient  
     * @param to  
     */  
    public void setTo(String to){   
        try {   
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));   
        } catch (AddressException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        } catch (MessagingException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
    }   
       
    /**  
     * set mail subject  
     * @param subject  
     */  
    public void setSubject(String subject){   
        try {   
            message.setSubject(subject);   
        } catch (MessagingException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
    }   
       
    /**  
     * set mail text  
     * @param text  
     */  
    public void setText(String text){   
        try {   
            message.setText(text);   
        } catch (MessagingException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
    }   
       
    /**  
     * send mail  
     * @return  
     */  
    public boolean send(){   
        try{   
            //create SMTP sender object   
            Transport transport = session.getTransport("smtp");   
            //get the connection with server   
            transport.connect((String) props.get("mail.smtp.host"),name,password);   
            //send the mail via server   
            transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));   
            transport.close();   
            return true;   
        }catch(NoSuchProviderException e){   
            e.printStackTrace();   
            return false;   
        }catch (MessagingException e){   
            e.printStackTrace();   
            return false;   
        }   
    }   
}  

MyAuthenticator.java

package common;   
  
import javax.mail.Authenticator;   
import javax.mail.PasswordAuthentication;   
  
public class MyAuthenticator extends Authenticator{   
    String name;   
    String password;   
       
    /**  
     *   
     * @param name  
     * @param password  
     */  
    public MyAuthenticator(String name, String password){   
        this.name = name;   
        this.password = password;   
        getPasswordAuthentication();   
    }   
       
    protected PasswordAuthentication getPasswordAuthentication(){   
        return new PasswordAuthentication(name,password);   
    }   
}  

Main.java:测试代码

package common;   
  
import java.util.*;   
  
public class Main {   
  
    /**  
     * @param args  
     */  
    public static void main(String[] args) {   
        // TODO Auto-generated method stub   
        String from = "test@sina.com";   
        String to = "test@163.com";   
        String subject = "test";   
        String content = "hello,world!";   
        String host = "smtp.sina.com";   
        String name = "test";   
        String password = "pass";   
/*      Scanner scan = new Scanner(System.in);  
        System.out.println("Please select your emailbox:");  
        System.out.println("mailbox host:");  
        host = scan.next();  
        System.out.println("mailbox name:");  
        name = scan.next();  
        System.out.println("mailbox password:");  
        password = scan.next();  
        System.out.println("send from:");         
        from = scan.next();  
        System.out.println("send to:");  
        to = scan.next();  
        System.out.println("subject:");  
        subject = scan.next();  
        System.out.println("text:");  
        text = scan.next();*/  
        MailInfo mailInfo = new MailInfo(from,to,subject,content);   
        Mailbox mailBox = new Mailbox(host,name,password,mailInfo);   
        if(mailBox.sendTextMail()){   
            System.out.println("Mail send successfully!");   
        }   
        else{   
            System.out.println("Mail send failed!");   
        }   
    }   
  
}  
分享到:
评论

相关推荐

    james和javamail实现邮件收发(带发送附件)

    在提供的压缩包文件“james+javaMail收发邮件”中,可能包含了示例代码和配置文件,供开发者参考和学习如何在实际项目中实现邮件收发功能,特别是处理中文内容和附件。通过理解和实践这些示例,开发者可以更好地掌握...

    javamail实现邮件发送(支持多接收人、多附件)

    本教程将详细讲解如何使用 JavaMail 实现邮件发送功能,包括支持多个接收人、抄送人以及添加多个附件。 首先,确保你已经添加了 JavaMail 的依赖库到你的项目中。如果是 Maven 项目,可以在 pom.xml 文件中添加以下...

    springboot集成javamail实现发送邮件功能

    springboot集成javamail,实现发送邮件的功能,可以发送文本类型邮件,也可以发送html格式的邮件,其中整合了mysql、mybatis 具体集成步骤可以参考我的文章: https://www.jianshu.com/p/668d320b4981

    JavaMail 具备垃圾邮件过滤功能的邮箱

    “javamail”是JavaMail的核心库,包含了实现邮件功能所需的类和接口;“Maillist”可能表示邮件列表,用于存储用户的联系人或订阅列表。 总的来说,这个JavaMail邮箱系统是一个集成了邮件处理、用户设置和智能过滤...

    Javamail实现邮件的发送

    它提供了与各种邮件服务器(如 SMTP、POP3 和 IMAP)交互的接口,使得开发者能够在 Java 应用程序中实现邮件功能。在本项目中,我们将重点讨论如何使用 JavaMail 实现邮件的发送功能,以及涉及到的关键知识点。 ...

    javamail实现邮件系统

    包括邮件的发送、阅读、和删除功能。当然还可以添加联系人,联系人是采用xml文档保存的。本邮件系统当有新邮件到达时可以提示,并且系统托盘中的邮件图标会闪动。本邮件系统是本人为了熟悉java而开发的,肯定有很多...

    javaMail实现发送邮件的demo

    它提供了一组 API,使得开发者可以方便地在 Java 应用程序中集成邮件功能。本示例将介绍如何使用 JavaMail 实现发送邮件的功能。 首先,我们需要导入 JavaMail 相关的库。在 Maven 项目中,可以在 `pom.xml` 文件中...

    JavaMail实现邮件发送功能,可发送、抄送、密送多人,支持多附件的发送

    本篇将详细介绍如何利用 JavaMail 实现邮件发送,包括发送、抄送、密送多人以及添加多附件。 首先,你需要在项目中引入 JavaMail 的依赖。如果是 Maven 项目,可以在 `pom.xml` 文件中添加如下依赖: ```xml ...

    使用JavaMail实现发送邮件

    本篇将深入探讨如何使用JavaMail实现发送邮件,以及相关的源码分析。 首先,我们需要了解JavaMail的基本组件。`javax.mail`库主要包含以下关键接口和类: 1. `Session`:这是JavaMail的核心,代表与邮件服务器的...

    javamail实现邮箱与邮箱发送邮件

    标签“java发送邮件”意味着此示例主要关注Java语言中发送邮件的功能,而“javamail邮箱发送”则表明我们利用JavaMail库来实现这一功能。这个过程涉及到Java网络编程和邮件协议的理解,如SMTP(简单邮件传输协议)和...

    JavaMail实现发送邮件功能

    它提供了与标准电子邮件协议(如 SMTP、POP3 和 IMAP)交互的接口,使得开发者能够在 Java 应用程序中轻松地实现邮件功能。在本文中,我们将深入探讨如何使用 JavaMail 实现发送邮件的功能。 首先,你需要在项目中...

    javamail实现邮件收发和加密

    JavaMail 是一个开源的 Java API,它允许开发者在 Java 应用程序中添加电子邮件功能,包括发送、接收邮件以及管理邮箱。在这个主题中,我们将深入探讨如何使用 JavaMail 实现邮件的加密和解密,以及如何进行邮件的...

    JavaMail实现邮件发送的简单封装(包括文本、图片、html、附件)

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。...在这个过程中,理解MimeMessage、Multipart和BodyPart的概念,以及如何配置SMTP服务器参数,是成功实现邮件发送的关键。

    Spring实现JavaMail邮件发送功能

    其中,Spring的JavaMail支持使得开发者能够轻松地实现邮件发送功能。在本篇文章中,我们将深入探讨如何利用Spring来实现JavaMail邮件发送,以及在实际应用中需要注意的关键点。 首先,我们需要理解JavaMail API的...

    JavaMail发送邮件的例子

    总的来说,JavaMail与Struts2结合可以方便地在Web应用中实现邮件功能,提供给用户便捷的邮件服务。理解JavaMail API的使用方法和在Struts2中的集成策略,有助于你构建更高效、更灵活的应用系统。

    基于JaVaMail的Web邮件客户端的设计与实现

    - JavaMail集成:利用JavaMail API实现邮件的收发功能。 - 数据持久化:使用数据库存储用户信息、邮件数据等。 - 安全性考虑:加密传输、用户认证机制等。 #### 五、系统架构与关键技术 1. **MVC模式**:Model-...

    使用javaMail发邮件及收取邮箱未读邮件并标记为已读

    在这个资源中,我们将探讨如何使用 JavaMail 实现邮件的发送、接收、查看邮件数量以及未读邮件的标记为已读。 首先,让我们从发送邮件开始。在 JavaMail 中,你需要创建一个 `Session` 对象来配置邮件服务器的连接...

    javaMail 发邮件

    在JavaMail中,我们可以实现各种复杂的邮件功能,如添加附件、设置HTML内容、发送带有图片的邮件等。 在JavaMail中发送邮件主要涉及以下组件: 1. **Properties对象**:这个对象用来存储邮件服务器的相关配置信息...

    javamail收发邮件加密和不加密

    JavaMail通过`mail.smtp.socketFactory.class`和`mail.smtp.socketFactory.port`属性实现此功能。 6. **证书与信任管理**: - 当使用加密连接时,需要处理服务器证书验证。JavaMail默认会检查服务器的证书是否由受...

Global site tag (gtag.js) - Google Analytics