加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java发送邮件,带抄送和附件的代码

发布时间:2020-12-15 00:15:22 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.io.UnsupportedEncodingException;import java.util.Properties; import javax.activation.DataHandler;import javax.activation.FileDat

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

import java.io.UnsupportedEncodingException;
import java.util.Properties;
 
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
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 javax.mail.internet.MimeUtility;
 
 
public class EmailManager { 
 
    private Properties props; //系统属性 
    private Session session; //邮件会话对象 
    private MimeMessage mimeMsg; //MIME邮件对象 
    private Multipart mp; //Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象 
      
    /**
     * Constructor
     * @param smtp 邮件发送服务器
     */
    public EmailManager(){
        props = System.getProperties();  
        props.put("mail.smtp.auth","false"); 
        session = Session.getDefaultInstance(props,null);
        session.setDebug(true);
        mimeMsg = new MimeMessage(session);
        mp = new MimeMultipart(); 
    } 
 
    /**
     * Constructor
     * @param smtp 邮件发送服务器
     */
    public EmailManager(String smtp,String username,String password){ 
        props = System.getProperties();
        props.put("mail.smtp.auth","true"); 
        props.put("mail.smtp.host",smtp);
        props.put("username",username);
        props.put("password",password);
        session = Session.getDefaultInstance(props,null);
        session.setDebug(true);
        mimeMsg = new MimeMessage(session);
        mp = new MimeMultipart(); 
    } 
 
    /** 
     * 发送邮件
     */ 
    public boolean sendMail(String from,String[] to,String[] copyto,String subject,String content,String filename) {
        try {
            //设置发信人
            mimeMsg.setFrom(new InternetAddress(from)); 
            //设置接收人
            for (int i = 0; i < to.length; i++) {
                mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to[i])); 
            }
            //设置抄送人
            for (int i = 0; i < copyto.length; i++) {
                mimeMsg.setRecipients(Message.RecipientType.CC,InternetAddress.parse(copyto[i])); 
            }
            //设置主题
            mimeMsg.setSubject(subject);
            //设置正文
            BodyPart bp = new MimeBodyPart(); 
            bp.setContent(content,"text/html;charset=utf-8");
            mp.addBodyPart(bp);
            //设置附件
            bp = new MimeBodyPart();
            FileDataSource fileds = new FileDataSource(filename); 
            bp.setDataHandler(new DataHandler(fileds)); 
            bp.setFileName(MimeUtility.encodeText(fileds.getName(),"UTF-8","B"));
            mp.addBodyPart(bp); 
            mimeMsg.setContent(mp); 
            mimeMsg.saveChanges(); 
            //发送邮件
            if(props.get("mail.smtp.auth").equals("true")){
                Transport transport = session.getTransport("smtp"); 
                transport.connect((String)props.get("mail.smtp.host"),(String)props.get("username"),(String)props.get("password")); 
                transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO)); 
                transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.CC)); 
                transport.close(); 
            }else{
                Transport.send(mimeMsg);
            }
            System.out.println("邮件发送成功");
        } catch (MessagingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return true;
    }
     
    public static void main(String[] args){
        String smtp = "smtp.163.com";
        String username="[email?protected]";
        String password="xxx";
        String from = "[email?protected]";
        String[] to = {"[email?protected]"};
        String[] copyto = {"[email?protected]"};
        String subject = "主题";
        String content = "邮件内容";
       String filename = "D:xxx.txt";
       EmailManager email = new EmailManager(smtp,username,password);
       email.sendMail(from,to,copyto,subject,content,filename);
    }
     
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读