Java Mail多人群发与多附件发送

    xiaoxiao2023-03-24  5

    相当于Maven的groupId,artifactId,version

    构建后应该引用了两个JAR:。如果第二个JAR没有的话,大家可以去Maven库找一下,就不多讲述了。

    实现的源码如下,一般直接拿来就可以用了~

    import java.io.UnsupportedEncodingException;   import java.util.ArrayList;   import java.util.Date;   import java.util.List;   import java.util.Properties;      import javax.activation.DataHandler;   import javax.activation.FileDataSource;   import javax.mail.Message;   import javax.mail.MessagingException;   import javax.mail.Multipart;   import javax.mail.Session;   import javax.mail.Transport;   import javax.mail.internet.AddressException;   import javax.mail.internet.InternetAddress;   import javax.mail.internet.MimeBodyPart;   import javax.mail.internet.MimeMessage;   import javax.mail.internet.MimeMultipart;   import javax.mail.internet.MimeUtility;         /**   * Java Mail 工具类   *    * @author XueQi   * @version 1.0   *    */   public class MailUtils {       private static String host;       private static String username;       private static String password;       private static String from;       private static String nick;          static {           try {               // Test Data               host = "smtp.163.com";               username = "邮箱用户名";               password = "邮箱密码";               from = "xxx@abc.com";               nick = "测试admin";               // nick + from 组成邮箱的发件人信息           } catch (Exception e) {               e.printStackTrace();           }       }          /**       * 发送邮件       *        * @param to       *            收件人列表,以","分割       * @param subject       *            标题       * @param body       *            内容       * @param filepath       *            附件列表,无附件传递null       * @return       * @throws MessagingException       * @throws AddressException       * @throws UnsupportedEncodingException       */       public static boolean sendMail(String to, String subject, String body,               List<String> filepath) throws AddressException, MessagingException,               UnsupportedEncodingException {           // 参数修饰           if (body == null) {               body = "";           }           if (subject == null) {               subject = "无主题";           }           // 创建Properties对象           Properties props = System.getProperties();           // 创建信件服务器           props.put("mail.smtp.host", host);           props.put("mail.smtp.auth""true"); // 通过验证           // 得到默认的对话对象           Session session = Session.getDefaultInstance(props, null);           // 创建一个消息,并初始化该消息的各项元素           MimeMessage msg = new MimeMessage(session);           nick = MimeUtility.encodeText(nick);           msg.setFrom(new InternetAddress(nick + "<" + from + ">"));           // 创建收件人列表           if (to != null && to.trim().length() > 0) {               String[] arr = to.split(",");               int receiverCount = arr.length;               if (receiverCount > 0) {                   InternetAddress[] address = new InternetAddress[receiverCount];                   for (int i = 0; i < receiverCount; i++) {                       address[i] = new InternetAddress(arr[i]);                   }                   msg.addRecipients(Message.RecipientType.TO, address);                   msg.setSubject(subject);                   // 后面的BodyPart将加入到此处创建的Multipart中                   Multipart mp = new MimeMultipart();                   // 附件操作                   if (filepath != null && filepath.size() > 0) {                       for (String filename : filepath) {                           MimeBodyPart mbp = new MimeBodyPart();                           // 得到数据源                           FileDataSource fds = new FileDataSource(filename);                           // 得到附件本身并至入BodyPart                           mbp.setDataHandler(new DataHandler(fds));                           // 得到文件名同样至入BodyPart                           mbp.setFileName(fds.getName());                           mp.addBodyPart(mbp);                       }                       MimeBodyPart mbp = new MimeBodyPart();                       mbp.setText(body);                       mp.addBodyPart(mbp);                       // 移走集合中的所有元素                       filepath.clear();                       // Multipart加入到信件                       msg.setContent(mp);                   } else {                       // 设置邮件正文                       msg.setText(body);                   }                   // 设置信件头的发送日期                   msg.setSentDate(new Date());                   msg.saveChanges();                   // 发送信件                   Transport transport = session.getTransport("smtp");                   transport.connect(host, username, password);                   transport.sendMessage(msg,                           msg.getRecipients(Message.RecipientType.TO));                   transport.close();                   return true;               } else {                   System.out.println("None receiver!");                   return false;               }           } else {               System.out.println("None receiver!");               return false;           }       }          public static void main(String[] args) throws AddressException,               UnsupportedEncodingException, MessagingException {           List<String> filepath = new ArrayList<>();           filepath.add("E:\\Resources\\Development Test\\AuctionServer\\src\\main\\java\\com\\auction\\dao\\IBaseDAO.java");           filepath.add("E:\\Resources\\Development Test\\AuctionServer\\src\\main\\java\\com\\auction\\dao\\IMemcacheDAO.java");           sendMail("000000@qq.com,000002@live.cn""注册信息邮件""注册邮件,有附件",                   filepath);       }  
    转载请注明原文地址: https://ju.6miu.com/read-1202258.html
    最新回复(0)