Java发送邮件javax.mail的实现方法_java

直接上源码:
1. 邮件的基本信息(方便就直接设置为静态了)
下面最好是做为一个javabean

package com.lgf.Email; 

import java.util.Date; 

public class EmailMessage
{
  /**
   * 邮件的信息,可以自己进行设置。
   * 为了方便直接全部设置为静态
   */ 

// 收件人邮箱
  public static String TO = "xxx@xxx.com";
// 发件人邮箱
  public static String FROM = "xxx@xxx.com";
  public static String FROM_NAME = "xxx";
//  抄送人
  public static String CC="xxx@nxxx.com";
//  暗送人
  public static String BCC="xxx@nxxx.com";
// 邮件的类型
  public static String Email_Content = "text/plain";
// 邮件标题
  public static String Email_Subject = "Test Email With JavaMail";
// 邮件头
  public static String Email_Header = "This Is Email Header";
// 内容
  public static String Email_Body = "<a href=\"http://www.baidu.com\">This Is Email Body</a>";
// 服务器 比如QQ的可以设置为smtp.qq.com
  public static String Email_Host = "smtp.xxx.com";
// 发送时间
  public static Date sendDate = new Date();
// 是否需要验证用户名和密码
  public static boolean validate = true;
}

 

2. 服务器验证(就是一般登入时候的用户名和密码)

package com.lgf.Email; 

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication; 

/**
 * 用户名和密码的验证
 * @author lgf
 *
 */
public class MailAuthenticator extends Authenticator{
  private String username="xxxxx";
  private String password="xxxxx";   

  public MailAuthenticator() {
    super();
  } 

  /**
   * 设置验证的用户名和密码
   */
  public MailAuthenticator(String userName , String password) {
    super();
    this.username = userName;
    this.password = password;
  }
  protected PasswordAuthentication getPasswordAuthentication()
  {
    return new PasswordAuthentication(this.username,this.password);
  }
} 

 3. 发送邮件前设置信息和步骤

package com.lgf.Email; 

import java.util.Properties; 

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart; 

import com.lgf.SendEmail.MailAuthenticator; 

public class SendEmail
{ 

  /**
  * 发送普通邮件
  * @throws Exception
  */
  public void doSendNormalMail()
  {
//    获取系统环境
    Properties prop = new Properties();
    Authenticator auth = null;
//   判断发送邮件是否需要验证
    if (EmailMessage.validate)
    {
//      邮件服务器认证  用户名和密码
      auth = new MailAuthenticator();
    }
//   添加必要的信息
    prop.put("mail.smtp.host", EmailMessage.Email_Host);
    prop.put("mail.smtp.auth", "true");   

//    设置对话和邮件服务器进行通讯
    Session session = Session.getDefaultInstance(prop, auth);
//   在控制台显示Debug信息
    session.setDebug(true);
//   设置邮件对象
    Message message = new MimeMessage(session);
    try
    {
//      设置邮件主题
      message.setSubject(EmailMessage.Email_Subject);
//      设置邮件标题
      message.setHeader("Header", EmailMessage.Email_Header);
//      设置发送时间
      message.setSentDate(EmailMessage.sendDate); 

//      设置发信人地址 和 名字
      Address address = new InternetAddress(EmailMessage.FROM, EmailMessage.FROM_NAME);
//     把发件人信息添加到信息中
      message.setFrom(address);   

//     设置发件人地址
      Address toAddress = new InternetAddress(EmailMessage.TO);
//      设置接收人地址
      message.setRecipient(Message.RecipientType.TO, toAddress);   

//     设置多个收件人地址
//     message.addRecipient(Message.RecipientType.TO,new InternetAddress("xxx@xxx.com"));   

//      设置邮件格式
      message.setContent("Content", EmailMessage.Email_Content);
//      设置邮件内容  必须在设置文件格式后面
      message.setText(EmailMessage.Email_Body);  

//     保存上面添加的信息
      message.saveChanges();
//      发送邮件
      System.out.println("sendNormalEmail() 开始发送邮件……");
      Transport.send(message);
      System.out.println("发送成功!");
    } catch (Exception e)
    {
        System.out.println("出错");
        e.printStackTrace();
    }
  }   

  /**
   * 发送HTML格式的邮件
   */
  public void doSendHtmlMail()
  {
//    获取系统环境
    Properties prop = new Properties();  

    Authenticator auth = null;
    if (EmailMessage.validate)
    {
//      邮件服务器认证  用户名和密码
      auth = new MailAuthenticator();
    }
//   添加必要的信息
    prop.put("mail.smtp.host", EmailMessage.Email_Host);
    prop.put("mail.smtp.auth", "true");   

//    设置对话和邮件服务器进行通讯
    Session session = Session.getDefaultInstance(prop, auth);   

//   设置邮件对象
    Message message = new MimeMessage(session);
    try
    {
//      设置邮件主题
      message.setSubject(EmailMessage.Email_Subject);
//      设置邮件标题
      message.setHeader("Header", EmailMessage.Email_Header);
//      设置发送时间
      message.setSentDate(EmailMessage.sendDate); 

//      设置发信人地址 和 名字
      Address address = new InternetAddress(EmailMessage.FROM, EmailMessage.FROM_NAME);
//     把发件人信息添加到信息中
      message.setFrom(address);   

//     设置发件人地址
      Address toAddress = new InternetAddress(EmailMessage.TO);
//      设置接收人地址
      message.setRecipient(Message.RecipientType.TO, toAddress);   

//     设置多个收件人地址
//     message.addRecipient(Message.RecipientType.TO,new InternetAddress("xxx@xxx.com"));   

//     设置发送信息的内容  下面为发送hmml
//     设置邮件格式
      EmailMessage.Email_Content = "text/html; charset=utf-8";
      message.setContent(EmailMessage.Email_Body, EmailMessage.Email_Content);  

//     保存上面添加的信息
      message.saveChanges();
//      发送邮件
      System.out.println("doSendHtmlMail() 开始发送邮件……");
      Transport.send(message);
      System.out.println("发送成功!");
    } catch (Exception e)
    {
        System.out.println("出错");
        e.printStackTrace();
    }
  }
  /**
   * 发送带有附件格式的邮件
   */
  public void doSendAttachmentMail()
  {
//    获取系统环境
    Properties prop = new Properties();  

    Authenticator auth = null;
    if (EmailMessage.validate)
    {
//      邮件服务器认证  用户名和密码
      auth = new MailAuthenticator();
    }
//   添加必要的信息
    prop.put("mail.smtp.host", EmailMessage.Email_Host);
    prop.put("mail.smtp.auth", "true");   

//    设置对话和邮件服务器进行通讯
    Session session = Session.getDefaultInstance(prop, auth);   

//   设置邮件对象
    Message message = new MimeMessage(session);
    try
    {
//      设置邮件主题
      message.setSubject(EmailMessage.Email_Subject);
//      设置邮件标题
      message.setHeader("Header", EmailMessage.Email_Header);
//      设置发送时间
      message.setSentDate(EmailMessage.sendDate); 

//      设置发信人地址 和 名字
      Address address = new InternetAddress(EmailMessage.FROM, EmailMessage.FROM_NAME);
//     把发件人信息添加到信息中
      message.setFrom(address);   

//     设置发件人地址
      Address toAddress = new InternetAddress(EmailMessage.TO);
//      设置接收人地址
      message.setRecipient(Message.RecipientType.TO, toAddress);   

//     设置多个收件人地址
//     message.addRecipient(Message.RecipientType.TO,new InternetAddress("xxx@xxx.com"));   

//     设置发送信息的内容  下面为发送附件
      message.setContent(EmailMessage.Email_Body, EmailMessage.Email_Content);  

      BodyPart messageBodyPart = new MimeBodyPart();
      messageBodyPart.setText("bodypart");   

      Multipart multipart = new MimeMultipart();
      multipart.addBodyPart(messageBodyPart);   

      messageBodyPart = new MimeBodyPart();   

//     设置上传的资源
      DataSource source = new FileDataSource("E:\\3.doc");
//     添加到
      messageBodyPart.setDataHandler(new DataHandler(source));
//     设置文件名称,记得后缀名
      messageBodyPart.setFileName("test.doc");
      multipart.addBodyPart(messageBodyPart);  

      message.setContent(multipart);   

//     保存上面添加的信息
      message.saveChanges();
//      发送邮件
      System.out.println("doSendAttachmentMail() 开始发送邮件……");
      Transport.send(message);
      System.out.println("发送成功!");
    } catch (Exception e)
    {
        System.out.println("出错");
        e.printStackTrace();
    }
  }
  /**
   * @param args
   */
  public static void main(String[] args)
  {
//   new SendEmail().doSendNormalMail();
//   new SendEmail().doSendHtmlMail();
    new SendEmail().doSendAttachmentMail();
  } 

} 

以上就是Java发送邮件javax.mail的详细代码,希望对大家实现java邮件发送有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java发送邮件
Java邮件javax.mail
javax.mail 发送邮件、javax.mail发送qq邮件、javamail实现发送邮件、javax.mail 发送附件、javax.mail接收邮件,以便于您获取更多的相关知识。

时间: 2024-11-01 09:09:41

Java发送邮件javax.mail的实现方法_java的相关文章

java发送javax.mail邮件实例讲解_java

平时我们网上逛网站的时候,经常会用到网站的注册.有很多方法,比如发短信验证,发邮箱验证.最近在SSH框架下,做了一个简单的邮件发送激活链接到邮箱,然后激活注册用户的一个功能.我用到的MailServer是易邮邮件服务器,引用的是javax.mail.jar包.javamail顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输. [常用类介绍] 下面有一些常用的类,给大家介绍一下: [Authenticator]    

Java发送邮件遇到的常见需求汇总_java

基于SMTP发送一个简单的邮件 首先,需要一个认证器: package No001_基于SMTP的文本邮件; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; public class SimpleAuthenticator extends Authenticator { private String username; private String password; public Simple

java中javamail收发邮件实现方法_java

概述 1.邮件相关的标准 厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括: SMTP(Simple Mail Transfer Protocol) :即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. POP3(Post Office Protocol – Version 3) :即邮局协议版本 3 ,用于接收电子邮件的标准协议. IMAP(Internet Mail Access Protocol) :即 In

谈谈在Java发送邮件中遇到的的问题_java

前言 发送邮件的代码是我从以前的一个应用上直接拷贝过来的.以前使用的腾讯的邮件服务,程序执行起来没有任何问题.后来修改为微软office365邮件服务后,却遇到了两个问题. 问题一,tls加密设置 异常信息如下: Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.57 SMTP; Client was not authenticated to send anonymous mail

java实现上传图片进行切割的方法_java

本文实例讲述了java实现上传图片进行切割的方法.分享给大家供大家参考.具体分析如下: 为什么我要进行上传的图片进行切割呢,我这个项目的图片是部门logo,每个部门都可以选择不同的logo,但是要应对浏览器的兼容以及拉伸,我选择了把一张图片切成左.中.右和剩下的部分,因为左边和中变可能会有图案或者字所以不能拉伸,拉伸的只是右边的部分,剩下的部分自适应就可以了.所以用了javax的ImageReader来操作.最后以blob类型保存数据库中. 首先要在form表单里面写上enctype="mult

Java实现SSL双向认证的方法_java

本文实例讲述了Java实现SSL双向认证的方法.分享给大家供大家参考,具体如下: 我们常见的SSL验证较多的只是验证我们的服务器是否是真实正确的,当然如果你访问的URL压根就错了,那谁也没有办法.这个就是所谓的SSL单向认证. 但是实际中,我们有可能还会验证客户端是否符合要求,也就是给我们每个用户颁发一个证书,比且每个数字证书都是唯一的,不公开的.这样就能通过这个数字证书保证当前访问我服务器的这个用户是经过服务器认可的,其他人不可访问. 双向认证 从第一个层面上 确保了服务器 与客户端 都是互相

java实现变更文件查询的方法_java

本文实例讲述了java实现变更文件查询的方法.分享给大家供大家参考.具体如下: 自己经常发布包时需要查找那些文件时上次发包后更新的数据文件,所以写了这个发布包, 拷贝输出的命令,dos窗口下执行, 为啥不直接复制文件,因为java拷贝文件会修改文件最后修改日期,所以采用dos下的拷贝. /* * * 更改所生成文件模板为 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释 */ package com.cn.wangk.tools; import java.awt.B

java实现OpenGL ES纹理映射的方法_java

本文实例讲述了java实现OpenGL ES纹理映射的方法.分享给大家供大家参考.具体如下: 1. GlRenderer.java文件: package net.obviam.opengl; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10; import android.content.Context; import android.opengl.GL

在Java下利用log4j记录日志的方法_java

1.前言 log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布. Log4j已经被移植到了C,C++,C#,Perl,Python和Ruby等语言中. Log4j是高度可配置的,并可通过在运行时的外部文件配置.它根据记录的优先级别,并提供机制,以指示记录信息到许多的目的地,例如:数据库,文件,控制台,UNIX系统日志等. Log4j中有三个主要组成部分:     loggers: 负责捕获记录信息.     appenders : 负责发布日志信息