JavaMail发送邮件

概述

JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。JavaMail是可选包,因此如果需要使用的话你需要首先从java官网上下载。目前最新版本是JavaMail1.5.0[1] ,使用JavaMail的时候需要Javabean Activation Framework的支持,因此你也需要下载JAF。安装JavaMail只是需要把他们加入到CLASSPATH中去,如果你不想修改CLASSPATH的话,可以直接把他们的jar包直接copy到JAVA_HOME/lib/ext下。这样JavaMail就安装好了。
JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。Session定义了一个基本的邮件会话,它需要从Properties中读取类似于邮件服务器,用户名和密码等信息

下面是一个使用JavaMail发送邮件的例子

public class MailTest {
    public static void main(String[] args) throws IOException, MessagingException {
        Properties properties = new Properties();
        try(InputStream inputStream = Files.newInputStream(Paths.get("J:\\Program\\idea-workplace\\Socket\\mail.properties")))
        {
            properties.load(inputStream);
        }
        List<String> lines = Files.readAllLines(Paths.get("J:\\Program\\idea-workplace\\Socket\\mail","message"), Charset.forName("UTF-8"));
        String from = lines.get(0);
        String to = lines.get(1);
        String subject = lines.get(2);
        StringBuilder sb = new StringBuilder();
        for(int i = 3; i < lines.size(); i++){
            sb.append(lines.get(i));
            sb.append("\n");
        }
        Session session = Session.getDefaultInstance(properties);//建立一个Session
        session.setDebug(true);//设置为调试模式
        MimeMessage msg  = new MimeMessage(session);
        msg.setFrom(new InternetAddress(from));
        msg.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
        msg.setSubject(subject);
        msg.setText(sb.toString());
        Transport ts = session.getTransport();
        try{
            ts.connect("zhangsan@126.com","123456");//发送方的账号和密码
            ts.sendMessage(msg,msg.getAllRecipients());
        }catch (Exception e ){

        }finally {
            ts.close();
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值