java邮件发送

本文介绍了一个Java程序示例,用于发送包含多个收件人的简单邮件。该示例使用了JavaMail API,并通过163邮箱服务器进行邮件的发送。

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

package com.taihuatalk.taihua.common.common;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import java.util.Date;
import javax.mail.Message.RecipientType;
import javax.mail.internet.MimeMessage;
import javax.mail.Message;
import javax.mail.Session;
import java.util.Properties;
import javax.mail.MessagingException;
import javax.mail.internet.MimeBodyPart;
import javax.mail.Multipart;
import javax.mail.internet.MimeMultipart;
import org.apache.log4j.Logger;
/** *//**
 * 发送Email类
 
*/


public class SendEmail {
  Logger logger
=Logger.getLogger(this.getClass());
  
/** *//**
   * Email发送方法
   * 
@param toemails 需要一个字符串参数,用来设置收件人地址,如果收件人为多个,则用","隔开
   * 
@param content 邮件内容
   * 
@param subject 邮件主题
   * 
@return 邮件成功发送则返回true,否则返回false
   
*/

  
public boolean sendSimpleEmail(String toemails,String content,String subject){
    
boolean result=false;
    logger.info(
"进入发送Email类");
      
try {
        
//创建属性对象
        Properties props = new Properties();
        
//设置邮件传输协议为:smtp
        props.put("mail.transpost.protocol","smtp");
        
//设置邮件服务器地址
        props.put("mail.smtp.host""smtp.163.com");
        
//设置邮件验证为真
        props.put("mail.smtp.auth""true");
        
//设置邮件服务器端口
        props.put("mail.smtp.port","25");

        
//调用验证类进行验证,需要参数发件人用户名和密码
        logger.info("验证类实例化==============");
        CheckSendEmail auth
=new CheckSendEmail("lip009","lip009");

        logger.info(
"验证通过");
        
//创建session对象
        Session sendMailSession;
        sendMailSession 
= Session.getInstance(props, auth);
        
//设置输出调试信息
        sendMailSession.setDebug(true);

        logger.info(
"开始创建消息对象");
        
//创建信息对象
        Message newMessage = new MimeMessage(sendMailSession);

        
//输入发送信息
        
//设置发信人地址
        logger.info("设置发信人地址");
        newMessage.setFrom(
new InternetAddress("link2friend@163.com"));

        
//设置收信人地址,只支持单用户发送
//        newMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(lip0091981@163.com));

        
//设置收信人地址,可以支持多用户发送
        logger.info("设置收信人地址");
        newMessage.setRecipients(Message.RecipientType.TO,
                                InternetAddress.parse(toemails));
       
//附件
//==============================================================================
       
//msgText是信件的正文,共有两行
//       String msgText = content;

       
//msgAttachment是一段字符串作为附件内容
//       String msgAttachment = "This is an attachment string!";

//       MimeBodyPart mbp1 = new MimeBodyPart();

//       mbp1.setText(msgText); //把前面定义的msgText中的文字设定为邮件正文的内容

       
//创建附件部分
//       MimeBodyPart mbp2 = new MimeBodyPart();

       
//使用setText(text, charset)来加入附件
//       mbp2.setText(msgAttachment, "gb2312");

       
//创建Multipart
//       Multipart mp = new MimeMultipart();

//       mp.addBodyPart(mbp1);
//       mp.addBodyPart(mbp2);

       
// 添加 Multipart到Message中
//       newMessage.setContent(mp);
//==============================================================================
        
//设置信件文本格式(当设置了附件,这里就不能有)
        logger.info("设置格式");
        newMessage.setContent(
"SendMail""text/html");

        
//设置信件主题
        logger.info("设置主题");
        newMessage.setSubject(subject);

        
//设置信件发送日期
        logger.info("设置发送日期");
        newMessage.setSentDate(
new Date());

        
//设置信件正文(当设置了附件,这里就不能有)
        newMessage.setText(content);
        logger.info(
"设置完消息");
        
//创建对象
        Transport transport;
        transport 
= sendMailSession.getTransport("smtp");
        logger.info(
"将要发送");

        
//发送
        result=true;
        transport.send(newMessage);
//此处总是抛出异常,让人很是郁闷,但是邮件却发送成功!
        logger.info("恭喜你!您的邮件已经成功发送!");
      }

      
catch (MessagingException ex) {
//        ex.printStackTrace();
      }

      
return result;
  }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值