iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java实现发送邮件并携带附件
  • 603
分享到

Java实现发送邮件并携带附件

2024-04-02 19:04:59 603人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了Java实现发送邮件并携带附件的具体代码,供大家参考,具体内容如下 一、 邮件服务器与传输协议 要在网络上实现邮件功能,必须要有专门的邮件服务器。主要负责接收用户

本文实例为大家分享了Java实现发送邮件并携带附件的具体代码,供大家参考,具体内容如下

一、 邮件服务器与传输协议

要在网络上实现邮件功能,必须要有专门的邮件服务器。主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。

  • SMTP服务器地址:一般是 smtp.xxx.com,163邮箱是smtp.163.com,qq邮箱是smtp.qq.com。
  • SMTP协议

通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。

  • POP3协议

通常把处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器)。 

二、 在发送人邮箱中开启POP3/SMTP服务

qq邮箱

登录qq邮箱后 → 设置 → 账户 → POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 → POP3/SMTP服务点击开启(需要绑定手机号发送验证短信)→ 获得了一串授权码(后续发送邮件需要)

163邮箱

登录163邮箱 → 设置 → POP3/SMTP/IMAP → POP3/SMTP服务 点击开启(需要邮箱app认证) → 获取到一串授权码 

三、 导入依赖


<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.5.0-b01</version>
</dependency>

四、 编写工具


import lombok.extern.slf4j.Slf4j;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.*;
import java.util.Date;
import java.util.Properties;
 
@Slf4j
public class EmailUtils {
    public static final String SenderEmail = "xxxxx@qq.com";//发送人邮箱
    public static final String senderCode = "ixxxxxxxxxxxdcd";//发送人邮箱授权码
    public static final String emailSMTPHost = "smtp.qq.com";//服务器地址
 
    public static final String receiveMailAccount = "xxxxx@qq.com";//收件人邮箱
    public static final String ccMailAccount = "xxxxx@163.com";//抄送人邮箱
    public static final String bccmailAccount = "xxxxxx@qq.com";//密送人邮箱
 
    
    public static void sendMail() {
        try {
            Properties props = new Properties();
            props.setProperty("mail.transport.protocol", "smtp");// 使用的协议
            props.setProperty("mail.smtp.host", emailSMTPHost);// 发件人的邮箱的SMTP服务器地址
            props.setProperty("mail.smtp.auth", "true");// 需要请求认证
 
            Session session = Session.getInstance(props);//得到会话对象实例
            
            session.setDebug(false);//是否打印详细日志
            
            MimeMessage message = createMimeMessage(session);//获取邮件对象(封装了一个方法)
 
            Transport transport = session.getTransport();
 
            transport.connect(SenderEmail, senderCode);//连接发送人的邮箱账户
 
            // 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
            transport.sendMessage(message, message.getAllRecipients());
 
            // 7. 关闭连接
            transport.close();
 
            log.info("邮件发送成功");
        } catch (Exception e) {
            log.error("发送邮件失败");
        }
 
    }

 
    public static MimeMessage createMimeMessage(Session session) throws Exception {
        // 1. 创建一封邮件
        MimeMessage message = new MimeMessage(session);
 
        // 2. From: 发件人
        message.setFrom(new InternetAddress(SenderEmail, "发件人", "UTF-8"));
 
        // 3. 设置收件人、抄送人、密送人
        //MimeMessage.RecipientType.TO:收件类型;MimeMessage.RecipientType.CC:抄送类型;MimeMessage.RecipientType.BCC:密送类型
        message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMailAccount, "收件人", "UTF-8"));
        message.setRecipient(MimeMessage.RecipientType.CC, new InternetAddress(ccMailAccount, "抄送人", "UTF-8"));
        message.setRecipient(MimeMessage.RecipientType.BCC, new InternetAddress(bccmailAccount, "密送人", "UTF-8"));
 
        // 4. Subject: 邮件主题
        message.setSubject("这是邮件的主题", "UTF-8");
 
        // 5. Content: 邮件正文(可以使用html标签)
        message.setContent("这是邮件正文", "text/html;charset=UTF-8");
 
*****************以下部分为携带附件代码,不需要携带附件的可删除星号圈起的部分*************************
        MimeMultipart multipart = new MimeMultipart();
        MimeBodyPart file1 = new MimeBodyPart();
        DataHandler handler = new DataHandler(new FileDataSource("文件路径"));
        file1.setDataHandler(handler);
        //对文件名进行编码,防止出现乱码
        String fileName = MimeUtility.encodeWord("文件名", "utf-8", "B");
        file1.setFileName(fileName);
        multipart.addBodyPart(file1);
        message.setContent(multipart);
*******************************************************************************************
 
        // 6. 设置发件时间
        message.setSentDate(new Date());
 
        // 7. 保存设置
        message.saveChanges();
 
        return message;
    }
}

五、最后

在同时设置正文和附件时,导致发送邮件后正文不显示,请大佬们指点。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Java实现发送邮件并携带附件

本文链接: https://www.lsjlt.com/news/134228.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java实现发送邮件并携带附件
    本文实例为大家分享了Java实现发送邮件并携带附件的具体代码,供大家参考,具体内容如下 一、 邮件服务器与传输协议 要在网络上实现邮件功能,必须要有专门的邮件服务器。主要负责接收用户...
    99+
    2024-04-02
  • java发送邮件带附件怎么实现
    在Java中发送带附件的邮件可以使用JavaMail API来实现。以下是一个示例代码: import java.util.Prop...
    99+
    2024-02-29
    java
  • Java实现批量发送带附件的邮件代码
    目录前言实体类(注意注释)实现类 方法中调用,详情如下:总结前言        新功能上线时要经常发包到测试或生产服务器进行模块部署...
    99+
    2024-04-02
  • Java如何实现带附件的邮件发送功能
    这篇文章主要讲解了Java如何实现带附件的邮件发送功能,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。需要导入mail.jar、activation.jar这两个邮件发送的jar包,可在网上搜索并下载需要设置相关...
    99+
    2023-05-31
    java ava
  • Java怎么实现批量发送带附件的邮件
    这篇文章主要讲解了“Java怎么实现批量发送带附件的邮件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么实现批量发送带附件的邮件”吧!实体类(注意注释)代码详情如下:package...
    99+
    2023-06-22
  • python发送带附件的邮件
      来源:http://snipperize.todayclose.com/snippet/py/Send-email-with-p_w_upload--53762/ Send email with p_w_upload import sm...
    99+
    2023-01-31
    附件 邮件 python
  • autojs使用intent发送邮件带附件实现示例
    目录正文环境正文 小米自带邮箱: 附件, 标题, 内容 这三个正常, 收件人为空; QQ邮箱: 全部正常 因此, 我给intent设置了QQ邮箱的包名 function sendE...
    99+
    2023-01-18
    autojs intent发邮件 autojs intent
  • 怎么用vbs发送带附件的邮件
    这篇文章主要介绍了怎么用vbs发送带附件的邮件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。function Send_mail(You_Account,You_P...
    99+
    2023-06-08
  • python3使用smtplib发送邮件,带xlsx附件
    最近在做一个统计报表,需要发送邮件,并带附件的。在之前的文章中https://www.cnblogs.com/xiao987334176/p/10022026.html已经实现了发送邮件,但是没有实现发送附件功能。 send_ma...
    99+
    2023-01-31
    发送邮件 附件 smtplib
  • java实现发送邮件
    本文介绍下java实现邮件的发送,意在网站用户评论时能够及时通知站长和用户评论被回复后能够及时通知用户。 下文介绍下具体实现。 java实现 首先引入springboot的邮箱依赖 org.springframework.boot ...
    99+
    2023-08-20
    java spring spring boot
  • Python如何实现发送带有pdf附件的电子邮件
    这篇文章主要介绍“Python如何实现发送带有pdf附件的电子邮件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何实现发送带有pdf附件的电子邮件”文章能帮助大家解决问题。一、如何使用...
    99+
    2023-07-05
  • 详解Python如何实现发送带附件的电子邮件
    Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件...
    99+
    2023-05-15
    Python发送带附件邮件 Python发送邮件 Python 邮件
  • python发送邮件和附件
    发送邮件的时候,需要发送人,收件人,和一台邮件服务器,这里使用python发送一个邮件,主要需要引入smtplib和email库。下面是源码,粘贴即可用: #!/usr/bin/env python3 # coding: utf-8 imp...
    99+
    2023-01-31
    发送邮件 附件 python
  • 如何用Python发送带有附件的邮件
    如何用Python发送带有附件的邮件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python 发送带有附件的邮件条件使用from django.core.ma...
    99+
    2023-06-02
  • GoLang:无法发送带附件的电子邮件
    php小编草莓今天给大家分享一篇关于GoLang的问题:无法发送带附件的电子邮件。在日常开发中,发送带附件的电子邮件是一个常见需求,但有时候我们会遇到一些问题。本文将介绍如何解决这个问...
    99+
    2024-02-11
  • Python实现发送声情并茂的邮件内容和附件
    目录1.准备工作2.创建电子邮件3.发送电子邮件4.添加附件5.总结Python是一种高级编程语言,它可以用于编写各种类型的应用程序,包括发送电子邮件。 Python提供了一个名为...
    99+
    2023-05-17
    Python实现发送邮件 Python发送邮件 Python发送附件 Python 邮件
  • vbs如何实现sendmail发邮件带附件
    小编给大家分享一下vbs如何实现sendmail发邮件带附件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!NameSpace = "...
    99+
    2023-06-08
  • C#实现SMTP邮件附件发送功能详解
    目录实践过程效果代码实践过程 效果 代码 public partial class frmSend : Form { public frmSend() { ...
    99+
    2022-12-28
    C# SMTP邮件附件发送 C# SMTP邮件发送 C# 邮件发送
  • Python怎么实现发送声情并茂的邮件内容和附件
    1.准备工作在开始之前,我们需要准备一些东西。首先,我们需要安装Python。Python可以从官方网站下载。其次,我们需要安装smtplib库。这可以通过以下命令在终端中完成:pip install smtplib2.创建电子邮件在发送电...
    99+
    2023-05-18
    Python
  • Java实现邮件发送功能
    Java实现邮件发送的具体代码,供大家参考,具体内容如下 一、邮件服务器与传输协议 要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作