用Java发送Email

想在Java中发送Email,首先要大概了解IMAP(Internet Mail Access Protocol),POP3(Post Office Protocol - Version 3),SMTP(Simple Mail Transfer Protocol)三种协议。

IMAP和POP3最大不同是:开启IMAP后,在电子邮件客户端收取的文件依然保存在服务器上,一举一动都会在服务器端同步。而POP3允许用户从服务器把邮件存储到本地主机,同时删除保存在服务器上的邮件。

SMTP即简单邮件传输协议,它属于TCP/IP协议簇有了此协议必须在提供账户和密码后才能登录SMTP服务器

进入邮箱(以网易邮箱为例)找到上方设置根据自己喜好打开一到两个服务

 

保存授权码

    以下为代码实现

 把上面封装便于后期使用

下面为发送文件

public static void main(String[] args)   {
        Session session = Utils.createSession();
        MimeMessage msg = new MimeMessage(session);
        try {
            msg.setFrom(new InternetAddress("****8***@126.com"));//发送方地址
            msg.setRecipient(RecipientType.TO, new InternetAddress("********@qq.com"));//接受方地址
            msg.setSubject("这是主题","utf-8");
            msg.setText("这是正文","utf-8","html");
            Multipart multipart = new MimeMultipart();//创建复合对象
            BodyPart text = new MimeBodyPart();//添加TEXT,一个MimeMultipart可以添加多个BodyPart第一个是正文其余为附件
            StringBuffer body = new StringBuffer();
            body.append("<h1>123</h1>");//可用HTML对其进行修改
            body.append("img src = \"cid:1234\"/>");
            text.setContent(body.toString(),"\"text/html;charset=utf-8\"");//添加文本内容
           

        }  catch (MessagingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

带有附件的邮件

// 创建MimeMessage邮件信息(省略)
// ..省略

// 创建Multipart复合对象来存放所有内容第一个BodyPart 为主题其余BodyPart为附件
Multipart multipart = new MimeMultipart();

// 添加text:
BodyPart textpart = new MimeBodyPart();
textpart.setContent(body, "text/html;charset=utf-8");
multipart.addBodyPart(textpart);

// 添加image:
BodyPart imagepart = new MimeBodyPart();
imagepart.setFileName(附件名称);
imagepart.setDataHandler(new DataHandler(new ByteArrayDataSource(文件流字节数组, "application/octet-stream")));
multipart.addBodyPart(imagepart);

// 设置邮件内容为multipart:
message.setContent(multipart);

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值