配置式的javamail

本文介绍了一个使用JavaMail API实现的邮件发送示例。该示例包括配置文件读取、认证设置及邮件内容构建等关键步骤,并提供了一个测试用例以验证功能正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

共有5个类  一个测试类  1个配置文件
Class  Au

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public  class Au extends Authenticator{
 JavaMailConfig jmd=null;
 
 
 
 public Au(JavaMailConfig jmd) {
  super();
  this.jmd = jmd;
 }

 @Override
 protected  PasswordAuthentication getPasswordAuthentication(){
    return new PasswordAuthentication(jmd.getUsername(), jmd.getPassword());
   }
}


class JavaMailConfig

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public  class JavaMailConfig {
 static InputStream is=JavaMailConfig.class.getClassLoader().getResourceAsStream("javamail.properties");
 static Properties pp=new Properties();
 private  String username;
 private  String password;
 private  String maifrom;
 private  String host;

 public String getUsername() {
  return username;
 }

 public String getHost() {
  return host;
 }

 public void setHost(String host) {
  this.host = host;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }


 public   Properties getProperties(){
 try {
  pp.load(is);
  username= (String) pp.get("username");
  password=(String)pp.getProperty("password");
  maifrom=(String)pp.getProperty("maifrom");
  host=pp.getProperty("host");
  pp.setProperty("mail.host", "smtp."+host+".com");
  pp.setProperty("mail.smtp.auth", "true");
 } catch (IOException e) {
  System.out.println("properties文件不存在");
  e.printStackTrace();
 }
 return pp;
 }

 public String getMaifrom() {
  return maifrom;
 }

 public void setMaifrom(String maifrom) {
  this.maifrom = maifrom;
 }
}

Class javaMailVO

public class JavaMailVO {
 private String[] FCCRecipients;
 private String[] BCCRecipients;
 private String subject;
 public String getSubject() {
  return subject;
 }
 public void setSubject(String subject) {
  this.subject = subject;
 }
 private String content;
 public String[] getFCCRecipients() {
  return FCCRecipients;
 }
 public void setFCCRecipients(String[] fCCRecipients) {
  FCCRecipients = fCCRecipients;
 }
 public String[] getBCCRecipients() {
  return BCCRecipients;
 }
 public void setBCCRecipients(String[] bCCRecipients) {
  BCCRecipients = bCCRecipients;
 }
 public String getContent() {
  return content;
 }
 public void setContent(String content) {
  this.content = content;
 }
}

Class javaMailUtil

import java.util.Properties;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
public class JavaMailUtil {
 static JavaMailConfig jmd=new JavaMailConfig();
 public static void sendJavaMail(JavaMailVO jmvo) {
  Properties prop = jmd.getProperties();
  Au auth = new Au(jmd);
  Session session = Session.getInstance(prop, auth);
  MimeMessage msg = new MimeMessage(session);
  try {
   msg.setFrom(new InternetAddress(jmd.getMaifrom()));
   StringBuffer sb=new StringBuffer();
   
   int i=0;
   for (String bcc:jmvo.getBCCRecipients()) {
     sb.append(bcc);
     i++;
     if(i<jmvo.getBCCRecipients().length){
      sb.append(",");
     }
   }
   
   msg.setFrom(new InternetAddress(prop.getProperty("maifrom")));
   msg.addRecipients(RecipientType.TO,sb.toString());
   msg.setSubject(jmvo.getSubject());
   msg.setContent(jmvo.getContent(), "text/html;charset=utf-8");
   Transport.send(msg);
   
   
  } catch (AddressException e) {
   e.printStackTrace();
  } catch (MessagingException e) {
   e.printStackTrace();
  }

 }
 public void sendJavaMail(String[] FCCRecipients, String BCCRecipients, String content) {
 }
}

可参考测试类编辑配置文件后直接使用

package mail;
import javax.mail.MessagingException;
import org.junit.Test;
public class TestJavaMail {
 @Test
 public void fun() throws MessagingException{
  JavaMailVO jmvo=new JavaMailVO();
  String[] bCCRecipients={"625959671@qq.com","631699895@qq.com"};
  jmvo.setBCCRecipients(bCCRecipients);
  String[] fCCRecipients={"625959671@qq.com","631699895@qq.com"};
  jmvo.setFCCRecipients(fCCRecipients);
  
  String subject="你好测试邮件";
  String content="内容:你好测试邮件sss";
  jmvo.setSubject(subject);
  jmvo.setContent(content);
  JavaMailUtil.sendJavaMail(jmvo);
 }
}

以下是配置文件javamail.properties
host=163
####登陆账号
username=chuxingyonghu
####登陆密码
password=*********
####发送账号
maifrom=chuxingyonghu@163.com

欢迎交流  邮箱chuxingyonghu@163.com





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值