美文网首页
java发送邮件的简单实例

java发送邮件的简单实例

作者: 努力努力再努力_c | 来源:发表于2017-06-25 00:41 被阅读0次

    JAVA MAIL是利用现有的邮件账户发送邮件的工具,比如说,我在网易注册一个邮箱账户,通过JAVA Mail的操控,我可以不亲自登录网易邮箱,让程序自动的使用网易邮箱发送邮件。这一机制被广泛的用在注册激活和垃圾邮件的发送等方面。

    本次邮件发送的实例采用的是SMTP协议,SMTP(Simple Mail Transfer Protocal)称为简单邮件传输协议,目标是向用户提供高效、可靠的邮件传输。工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。 SMTP是个请求/响应协议,它监听25号端口,用于接收用户的邮件请求,并与远端邮件服务器建立SMTP连接。

    JavaMail用到的jar包,一共3个。下载之后要放到libs目录下,然后右击工程,选择Builder Path--》Configure Build Path,Libraries,Add JARs,选择工程目录下的libs下的jar包。

    所需jar包下载地址:http://pan.baidu.com/s/1pKQvzAz 密码:d0yc

    邮件发送代码

    package utils;
    
    import java.util.Date;
    import java.util.Properties;
    import java.util.UUID;
    import javax.mail.Authenticator;
    import javax.mail.MessagingException;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    
    public class EmailTest {
    
         public static void main(String[] args) throws MessagingException {
                //创建一封邮件
                //用于连接邮件服务器的参数配置(发送邮件时才需要用到)
                Properties properties = new Properties();
                // 创建信件服务器  
                properties.put("mail.smtp.host", "smtp.163.com");//主机host,跟邮件发送者必须一致
                properties.put("mail.smtp.auth", "true"); // 通过验证,也就是用户名和密码的验证,必须要有这一条 
                properties.put("mail.smtp.port", 465);//加密服务端口465
    //          properties.put("mail.smtp.ssl.enable", true);
    
                // 发送邮件协议名称  
                properties.setProperty("mail.transport.protocol", "smtp");  
    
                properties.put("mail.smtp.ssl.enable", "true");//加密
                Session session = Session.getInstance(properties, new Authenticator() {
                    @Override
                    protected PasswordAuthentication getPasswordAuthentication(){
                        //登陆邮箱,密码
                        return new PasswordAuthentication("user1@163.com","password1");
                    }
                });
    //          Session session = Session.getInstance(properties);  
                //根据参数配置,创建回话对象(为了发送邮件准备的)
                //Session session = Session.getDefaultInstance(properties);
                //debug
                session.setDebug(true);
                //创建邮件对象
                MimeMessage message = new MimeMessage(session);
                //邮件几个必须的:发件人,收件人,邮件主题,邮件内容
                try {
                    //1、from :发件人
                    //      其中 InternetAddress 的三个参数分别为: 邮箱, 显示的昵称(只用于显示, 没有特别的要求), 昵称的字符集编码
                    //    真正要发送时, 邮箱必须是真实有效的邮箱。
                     message.setFrom(new InternetAddress("user1@163.com"));
                    //2、TO :收件人
                    //MimeMessage.RecipientType.TO  直接发送人
                    //MimeMessage.RecipientType.CC  抄送人(可选)
                    //MimeMessage.RecipientType.BCC  秘密发送人(可选)
                    message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress("user2@163.com"));
                    //3、Suject :邮件主题
                    message.setSubject("邮箱验证","UTF-8");
                    //邮件内容
                     ///邮件的内容
                    //4、Content :邮件正文(可以使用html标签)
                    message.setContent("Java邮箱测试", "text/html;charset=UTF-8");
                    //5、设置显示的发件时间
                    message.setSentDate(new Date());
                    //6、保存前面设置的
                    message.saveChanges();
                    //7、发送
                    Transport.send(message);
                    System.out.println("邮件已经发送完毕");
                } catch (MessagingException e) {
                    e.printStackTrace();
                }
                
         }
              
    
    }
    

    相关文章

      网友评论

          本文标题:java发送邮件的简单实例

          本文链接:https://www.haomeiwen.com/subject/bpjlcxtx.html