java实现基于SMTP发送邮件的方法

 更新时间:2015年07月17日 10:56:23   作者:答复哈  
这篇文章主要介绍了java实现基于SMTP发送邮件的方法,实例分析了java基于SMTP服务发送邮件的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了java实现基于SMTP发送邮件的方法。分享给大家供大家参考。具体实现方法如下:

import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.apache.log4j.Logger;
public class MailUtil {
 private static Logger logger = Logger.getLogger(MailUtil.class);
 /**
  * 发送邮件
  * 
  * @param smtp
  *   SMTP服务器
  * @param user
  *   用户名
  * @param password
  *   密码
  * @param subject
  *   标题
  * @param content
  *   邮件内容
  * @param from
  *   发件人邮箱
  * @param to
  *   收件人邮箱
  */
 public static void send(String smtp, final String user,
   final String password, String subject, String content, String from,
   String to) {
  try {
   Properties props = new Properties();
   props.put("mail.smtp.host", smtp);
   props.put("mail.smtp.auth", "true");
   Session ssn = Session.getInstance(props, new Authenticator() {
    @Override
    protected PasswordAuthentication getPasswordAuthentication() {
     return new PasswordAuthentication(user, password);
    }
   });
   MimeMessage message = new MimeMessage(ssn);
   //由邮件会话新建一个消息对象 
   InternetAddress fromAddress = new InternetAddress(from);
   //发件人的邮件地址 
   message.setFrom(fromAddress);
   //设置发件人 
   InternetAddress toAddress = new InternetAddress(to);
   //收件人的邮件地址 
   message.addRecipient(Message.RecipientType.TO, toAddress);
   //设置收件人
   message.setSubject(subject);
   //设置标题
   message.setText(content);
   //设置内容
   message.setSentDate(new Date());
   //设置发信时间 
   Transport transport = ssn.getTransport("smtp");
   transport.connect(smtp, user, password);
   transport.sendMessage(message, message
     .getRecipients(Message.RecipientType.TO));
   // transport.send(message);
   transport.close();
   logger.info("邮件发送成功");
  } catch (Exception e) {
   logger.warn("邮件发送失败", e);
  }
 }
}

希望本文所述对大家的java程序设计有所帮助。

相关文章

  • Java Socket编程详解及示例代码

    Java Socket编程详解及示例代码

    本文主要讲解Java Socket编程,这里整理了详细的技术资料及简单的示例代码帮助大家学习参考,有需要的小伙伴可以参考下本文内容
    2016-09-09
  • Spring的事件监听机制示例详解

    Spring的事件监听机制示例详解

    这篇文章主要给大家介绍了关于Spring的事件监听机制的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • Mybatis与Jpa的区别和性能对比总结

    Mybatis与Jpa的区别和性能对比总结

    mybatis和jpa两个持久层框架,从底层到用法都不同,但是实现的功能是一样的,所以说一直以来颇有争议,所以下面这篇文章主要给大家介绍了关于Mybatis与Jpa的区别和性能对比的相关资料,需要的朋友可以参考下
    2021-06-06
  • 浅析Java集合中的LinkedHashSet

    浅析Java集合中的LinkedHashSet

    这篇文章主要介绍了浅析Java集合中的LinkedHashSet,LinkedHashSet 是 Java 中的一个集合类,它是 HashSet 的子类,并实现了 Set 接口,与 HashSet 不同的是,LinkedHashSet 保留了元素插入的顺序,并且具有 HashSet 的快速查找特性,需要的朋友可以参考下
    2023-09-09
  • Springboot线程池并发处理数据优化方式

    Springboot线程池并发处理数据优化方式

    这篇文章主要介绍了Springboot线程池并发处理数据优化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 一文快速掌握Java中的搜索算法和排序算法

    一文快速掌握Java中的搜索算法和排序算法

    这篇文章主要为大家详细介绍了Java中常用的搜索算法和排序算法的实现,例如二分查找、冒泡排序、选择排序等,文中的示例代码讲解详细,希望对大家有所帮助
    2023-04-04
  • Java使用easyExcel批量导入数据详解

    Java使用easyExcel批量导入数据详解

    这篇文章主要介绍了Java使用easyExcel批量导入数据详解,通常我们会提供一个模板,此模块我们可以使用easyExcel导出数据生成的一个Excel文件当作模板,提供下载链接,用户在该文件内填入规定的数据格式以后可以批量导入数据到数据库中,需要的朋友可以参考下
    2023-08-08
  • Spring框架web项目实战全代码分享

    Spring框架web项目实战全代码分享

    这篇文章主要介绍了Spring框架web项目实战全代码分享,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 基于Java语言实现Socket通信的实例

    基于Java语言实现Socket通信的实例

    今天小编就为大家分享一篇关于基于Java语言实现Socket通信的实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Java 散列存储详解及简单示例

    Java 散列存储详解及简单示例

    这篇文章主要介绍了Java 散列存储详解及简单示例的相关资料,需要的朋友可以参考下
    2017-02-02

最新评论