java实现发送邮件的示例代码

 更新时间:2020年07月08日 11:48:33   作者:布诺  
这篇文章主要介绍了java如何实现发送邮件,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下

代码

import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import javax.mail.Session;
import javax.mail.MessagingException;
import javax.mail.Transport;

/**
 * @author BuNuo
 */
public class SendHtmlMail {
  /**
   * @param to 邮件接收者
   * @param subject 邮件主题
   * @param messageText 邮件内容,可以是html代码
   * @throws MessagingException
   * @throws java.io.UnsupportedEncodingException
   */
  public static void sendMessage(String to, String subject, String messageText)
      throws MessagingException, java.io.UnsupportedEncodingException {

    // Step 1: Configure the mail session
    String from = "******"; //发送邮件的账号
    String password = "******"; //Password
    String smtpHost = "smtp.163.com"; //SMTP服务器
    java.util.Properties props = new java.util.Properties();
    props.setProperty("mail.smtp.auth", "true");// 指定是否需要SMTP验证
    props.setProperty("mail.smtp.host", smtpHost);// 指定SMTP服务器
    props.put("mail.transport.protocol", "smtp");
    Session mailSession = Session.getDefaultInstance(props);
    mailSession.setDebug(false);// 是否在控制台显示debug信息

    // Step 2: Construct the message
    System.out.println("Constructing message - from=" + from + " to=" + to);
    InternetAddress fromAddress = new InternetAddress(from);
    InternetAddress toAddress = new InternetAddress(to);

    MimeMessage testMessage = new MimeMessage(mailSession);
    testMessage.setFrom(fromAddress);
    testMessage.addRecipient(javax.mail.Message.RecipientType.TO, toAddress);
    testMessage.setSentDate(new java.util.Date());
    testMessage.setSubject(MimeUtility.encodeText(subject, "gb2312", "B"));

    testMessage.setContent(messageText, "text/html;charset=gb2312");
    System.out.println("Message constructed");

    // Step 3: Now send the message
    Transport transport = mailSession.getTransport("smtp");
    transport.connect(smtpHost, from, password);
    transport.sendMessage(testMessage, testMessage.getAllRecipients());
    transport.close();
    System.out.println("Message sent!");
  }
}

测试代码

String to = "173××××0190@163.com";
    System.out.println("to=:"+to);
    String subject = "邮件测试"; // subject javamail自动转码
    StringBuffer message = new StringBuffer();
    message.append("<table style='margin: 25px auto;' border='0' cellspacing='0' cellpadding='0' width='648' align='center'>");
    message.append("<tbody>");
    message.append("<tr><td style='color:#40AA53;'><h1 style='margin-bottom:10px;'>bjcodes</h1></td></tr>");
    message.append("<tr>");
    message.append("<td style='border-left: 1px solid #D1FFD1; padding: 20px 20px 0px; background: none repeat scroll 0% 0% #ffffff; border-top: 5px solid #40AA53; border-right: 1px solid #D1FFD1;'>");
    message.append("<p>HelloWorld, 你好 </p>");
    message.append("</td>");
    message.append("</tr>");
    message.append("<tr>");
    message.append("<td style='border-left: 1px solid #D1FFD1; padding: 10px 20px; background: none repeat scroll 0% 0% #ffffff; border-right: 1px solid #D1FFD1;'>");
    message.append("<p>您已经成功为<strong>bjcodes</strong>会员!</p>");
    message.append("<p style='font-weight:bold'>请点击以下链接:<br>");
    message.append("<a href='http://www.bjcodes.com'>http://www.bjcodes.com</a></p>");
    message.append("</td>");
    message.append("</tr>");
    message.append("<tr>");
    message.append("<td style='border-bottom: 1px solid #D1FFD1; border-left: 1px solid #D1FFD1; padding: 0px 20px 20px; background: none repeat scroll 0% 0% #ffffff; border-right: 1px solid #D1FFD1;'>");
    message.append("<p><img title='微信二维码' src='http://bjcodes.com/images/code.jpg' alt=''></p>");
    message.append("<p style='color:#060;font-size:9pt;'>扫一扫,关注 bjcodes 微信公共号,更方便获知每日精彩推荐</p>");
    message.append("<p style='color:#060;font-size:9pt;'>想了解更多信息,请访问 <a href='http://www.bjcodes.com' target='_blank'>http://www.bjcodes.com</a></p>");
    message.append("</td>");
    message.append("</tr>");
    message.append("</tbody>");
    message.append("</table>");
    message.append("<style type='text/css'>");
    message.append("body{font-size:14px;font-family:arial,verdana,sans-serif;line-height:1.666;padding:0;margin:0;overflow:auto;white-space:normal;word-wrap:break-word;min-height:100px}");
    message.append("td, input, button, select, body{font-family:Helvetica, 'Microsoft Yahei', verdana}");
    message.append("pre {white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;width:95%}");
    message.append("th,td{font-family:arial,verdana,sans-serif;line-height:1.666}");
    message.append("img{ border:0}");
    message.append("header,footer,section,aside,article,nav,hgroup,figure,figcaption{display:block}");
    message.append("</style>");
    message.append("<style id='ntes_link_color' type='text/css'>a,td a{color:#064977}</style>");

    try {
     SendHtmlMail.sendMessage(to, subject,message.toString());
    } catch (javax.mail.MessagingException exc) {
     exc.printStackTrace();
    } catch (java.io.UnsupportedEncodingException exc) {
     exc.printStackTrace();
    }

测试结果

以上就是java实现发送邮件的示例代码的详细内容,更多关于JAVA 发送邮件的资料请关注脚本之家其它相关文章!

相关文章

  • SSH框架网上商城项目第6战之基于DataGrid的数据显示

    SSH框架网上商城项目第6战之基于DataGrid的数据显示

    SSH框架网上商城项目第6战之基于DataGrid的数据显示,提供了丰富的选择、排序、分组和编辑数据的功能支持,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 浅谈Java中的桥接方法与泛型的逆变和协变

    浅谈Java中的桥接方法与泛型的逆变和协变

    对应于Java当中,协变对应的就是<? extends XXX>,而逆变对应的就是<? super XXX>,本文详细的介绍了Java中的桥接方法与泛型的逆变和协变,感兴趣的可以了解一下
    2022-04-04
  • Java日常练习题,每天进步一点点(22)

    Java日常练习题,每天进步一点点(22)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • 详解Java中PriorityQueue的作用和源码实现

    详解Java中PriorityQueue的作用和源码实现

    这篇文章主要为大家详细介绍了Java中阻塞队列PriorityQueue的作用和源码实现的相关知识,文中的示例代码讲解详细,需要的小伙伴可以了解下
    2024-02-02
  • Java多线程编程之访问共享对象和数据的方法

    Java多线程编程之访问共享对象和数据的方法

    这篇文章主要介绍了Java多线程编程之访问共享对象和数据的方法,多个线程访问共享对象和数据的方式有两种情况,本文分别给出代码实例,需要的朋友可以参考下
    2015-05-05
  • springboot植入pagerHelper的超详细教程

    springboot植入pagerHelper的超详细教程

    这篇文章主要介绍了springboot植入pagerHelper的超详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 使Java的JButton文字隐藏功能的实现(不隐藏按钮的前提)

    使Java的JButton文字隐藏功能的实现(不隐藏按钮的前提)

    这篇文章主要介绍了使Java的JButton文字隐藏功能的实现(不隐藏按钮的前提),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • javaSE基础java自定义注解原理分析

    javaSE基础java自定义注解原理分析

    这篇文章主要介绍了javaSE基础对java自定义注解原理分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多度进步,早日升职加薪
    2021-10-10
  • 在Spring Boot中实现多环境配置的方法

    在Spring Boot中实现多环境配置的方法

    在SpringBoot中,实现多环境配置是一项重要且常用的功能,它允许开发者为不同的运行环境,这种方式简化了环境切换的复杂度,提高了项目的可维护性和灵活性,本文给大家介绍在Spring Boot中实现多环境配置的方法,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • Java日常练习题,每天进步一点点(48)

    Java日常练习题,每天进步一点点(48)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-08-08

最新评论