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

作者:布诺 时间:2023-07-04 17:00:54 

代码


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实现发送邮件的示例代码

来源:https://www.cnblogs.com/bunuo/p/6306110.html

标签:JAVA,发送,邮件
0
投稿

猜你喜欢

  • C#单例模式(Singleton Pattern)详解

    2021-12-30 05:55:03
  • Android实现文件下载进度显示功能

    2023-12-26 00:42:28
  • React Native学习之Android的返回键BackAndroid详解

    2023-04-19 14:15:28
  • 简单聊聊C#字符串构建利器StringBuilder

    2022-07-15 12:49:44
  • eclipse导入appcompat项目报错解决办法

    2021-11-10 14:25:57
  • Android 如何本地加载pdf文件

    2023-05-24 02:11:48
  • Android布局中gravity与layout_gravity属性说明

    2021-08-27 10:51:31
  • Spring中的REST分页的实现代码

    2023-03-16 01:06:46
  • Android利用zxing生成二维码的过程记录

    2022-12-25 15:54:56
  • springboot整合quartz项目使用案例

    2023-02-13 19:57:12
  • Spring Cloud Gateway网关XSS过滤方式

    2021-08-07 13:16:53
  • java二叉树的几种遍历递归与非递归实现代码

    2022-06-29 19:19:47
  • Ubuntu 14.04下创建Genymotion安卓虚拟机的步骤详解

    2023-11-04 19:17:54
  • 解决spring security中遇到的问题

    2023-05-08 11:26:46
  • 简述Java编程之关系操作符

    2021-08-07 09:44:23
  • Android Studio设置或修改Android SDK路径方法

    2023-11-07 17:22:10
  • 教你怎么使用Java实现WebSocket

    2022-10-31 04:08:50
  • 基于C#技术实现身份证识别功能

    2023-10-01 14:16:26
  • Java新手环境搭建 Tomcat安装配置教程

    2021-08-19 08:06:23
  • redis scan命令导致redis连接耗尽,线程上锁的解决

    2021-11-19 02:57:52
  • asp之家 软件编程 m.aspxhome.com