发送邮件方法

本文提供了一个Java实现的邮件发送示例代码,通过使用JavaMail API来发送带有HTML内容及附件的电子邮件。

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

package com.taoche.module;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;

public class Mail {
    static int port = 25;
    static String server = "mail(smtp).xxx.com";
    static String from = "YiXinTest";
    static String user = "发件邮箱";
    static String password = "密码-一般授权密码";

    public static void sendEmailAttach(String subject, String body, String Attachpath) throws UnsupportedEncodingException {
        try {
            Properties props = new Properties();
            props.put("mail.smtp.host", server);
            props.put("mail.smtp.port", String.valueOf(port));
            props.put("mail.smtp.auth", "true");
            Transport transport = null;
            Session session = Session.getDefaultInstance(props, null);
            transport = session.getTransport("smtp");
            transport.connect(server, user, password);
            MimeMessage msg = new MimeMessage(session);
            msg.setSentDate(new Date());
            InternetAddress fromAddress = new InternetAddress(user, from, "UTF-8");
            msg.setFrom(fromAddress);

            // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
            Multipart mainPart = new MimeMultipart();
            // 创建一个包含HTML内容的MimeBodyPart
            BodyPart html = new MimeBodyPart();
            // 设置HTML内容
            html.setContent(body, "text/html; charset=utf-8");
            mainPart.addBodyPart(html);

            //添加附件
            // 创建一新的MimeBodyPart
            MimeBodyPart mdp = new MimeBodyPart();
            //得到文件数据源
            FileDataSource fds = new FileDataSource(Attachpath);
            //得到附件本身并至入BodyPart
            mdp.setDataHandler(new DataHandler(fds));
            //得到文件名同样至入BodyPart
            mdp.setFileName(fds.getName());
            mainPart.addBodyPart(mdp);

            String email = "收件人";

            if (email != null && email.trim().length() > 0) {
                String[] arr = email.split(",");
                int receiverCount = arr.length;
                if (receiverCount > 0) {
                    InternetAddress[] toAddress = new InternetAddress[receiverCount];
                    for (int i = 0; i < receiverCount; i++) {
                        toAddress[i] = new InternetAddress(arr[i]);
//                            System.out.println(toAddress[i]);
                    }
                    msg.setRecipients(Message.RecipientType.TO, toAddress);
                }
            }

            msg.setSubject(subject, "UTF-8");
            msg.setText(body, "UTF-8");
            //附件添加到内容
            msg.setContent(mainPart);
            msg.saveChanges();
            transport.sendMessage(msg, msg.getAllRecipients());
        } catch (NoSuchProviderException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) throws IOException {
//            Mail.email_send("app","df df");
        Mail.sendEmailAttach("测试伐木累", "Hello EVBD", "E:/美图/林俊杰/189.bmp");
    }
}



转载于:https://www.cnblogs.com/hxm154/p/7889411.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值