精华内容
下载资源
问答
  • email
    千次阅读
    2021-04-21 16:09:41

    Python: email-validator验证Email地址

    文档:

    安装

    pip install email-validator
    

    代码实例

    from email_validator import validate_email, EmailNotValidError
    
    email = "my+address@mydomain.tld"
    
    try:
        # Validate.
        valid = validate_email(email)
    
        # Update with the normalized form.
        email = valid.email
    except EmailNotValidError as e:
        # email is not valid, exception message is human-readable
        print(str(e))
    
    
    更多相关内容
  • Jenkins Email Extension Plugin

    热门讨论 2014-03-05 22:56:36
    Jenkins Email Extension Plugin
  • Python常用模块8-Python的email模块简介

    千次阅读 2021-04-14 16:00:10
    文章目录一.email - 电子邮件与 MIME 处理包二.发送邮件简要概述2.1 python发邮件所需要的基础包2.2 smtplib的用法2.3 email模块的详细理解和使用十.email案例参考: 一.email - 电子邮件与 MIME 处理包 email 包是一...

    一.email - 电子邮件与 MIME 处理包

    email 包是一个用于管理电子邮件消息的库。 它 并非 被设计为执行向 SMTP (RFC 2821), NNTP 或其他服务器发送电子邮件消息的操作;这些是 smtplibnntplib 等模块的功能。 email 包试图尽可能遵循 RFC,支持 RFC 5233RFC 6532,以及与 MIME 相关的各个 RFC 例如 RFC 2045, RFC 2046, RFC 2047, RFC 2183RFC 2231

    email 包的总体结构可以分为三个主要部分,另外还有第四个部分用于控制其他部分的行为。

    这个包的中心组件是代表电子邮件消息的“对象模型”。 应用程序主要通过在 message 子模块中定义的对象模型接口与这个包进行交互。 应用程序可以使用此 API 来询问有关现有电子邮件的问题、构造新的电子邮件,或者添加或移除自身也使用相同对象模型接口的电子邮件子组件。 也就是说,遵循电子邮件消息及其 MIME 子组件的性质,电子邮件对象模型是所有提供 EmailMessage API 的对象所构成的树状结构。

    这个包的另外两个主要组件是 parsergenerator。 parser 接受电子邮件消息的序列化版本(字节流)并将其转换为 EmailMessage 对象树。 generator 接受 EmailMessage 并将其转回序列化的字节流。 (parser 和 generator 还能处理文本字符流,但不建议这种用法,因为这很容易导致某种形式的无效消息。

    控制组件是 policy 模块。 每一个 EmailMessage、每一个 generator 和每一个 parser 都有一个相关联的 policy 对象来控制其行为。 通常应用程序只有在 EmailMessage 被创建时才需要指明控制策略,或者通过直接实例代 EmailMessage 来新建电子邮件,或者通过使用 parser 来解析输入流。 但是策略也可以在使用 generator 序列化消息时被更改。 例如,这允许从磁盘解析通用电子邮件消息,而在将消息发送到电子邮件服务器时使用标准 SMTP 设置对其进行序列化。

    email 包会尽量地对应用程序隐藏各种控制类 RFC 的细节。 从概念上讲应用程序应当能够将电子邮件消息视为 Unicode 文本和二进制附件的结构化树,而不必担心在序列化时要如何表示它们。 但在实际中,经常有必要至少了解一部分控制类 MIME 消息及其结构的规划,特别是 MIME “内容类型” 的名称和性质以及它们是如何标识多部分文档的。 在大多数情况下这些知识应当仅对于更复杂的应用程序来说才是必需的,并且即便在那时它也应当仅是特定的高层级结构,而不是如何表示这些结构的细节信息。 由于 MIME 内容类型被广泛应用于现代因特网软件(而非只是电子邮件),因此这对许多程序员来说将是很熟悉的概念。

    以下小节描述了 email 包的具体功能。 我们会从 message 对象模型开始,它是应用程序将要使用的主要接口,之后是 parsergenerator 组件。 然后我们会介绍 policy 控制组件,它将完成对这个库的主要组件的处理。

    接下来的三个小节会介绍这个包可能引发的异常以及 parser 可能检测到的缺陷(即与 RFC 不相符)。 然后我们会介绍 headerregistrycontentmanager 子组件,它们分别提供了用于更精细地操纵标题和载荷的工具。 这两个组件除了包含使用与生成非简单消息的相关特性,还记录了它们的可扩展性 API,这将是高级应用程序所感兴趣的内容。

    在此之后是一组使用之前小节所介绍的 API 的基本部分的示例。

    前面的内容是 email 包的现代(对 Unicode 支持良好)API。 从 Message 类开始的其余小节则介绍了旧式 compat32 API,它会更直接地处理如何表示电子邮件消息的细节。 compat32 API 不会 向应用程序隐藏 RFC 的相关细节,但对于需要进行此种层级操作的应用程序来说将是很有用的工具。 此文档对于因向下兼容理由而仍然使用 compat32 API 的应用程序也是很适合的。

    email 包文档的内容:

    二.发送邮件简要概述

    2.1 python发邮件所需要的基础包

    python发送邮件需要用到python自带的两个模块,smtplib和email。直接import导入,无需下载。
    python的smtplib提供了一种很方便的途径发送电子邮件,它对smtp协议进行了简单的封装。

    2.2 smtplib的用法

    smtplib用法相对来说很简单,就是分为两步。

    1. 创建SMTP的操作对象并连接smtp目标服务器,可以是163、QQ等
    2. 根据自己的账号登录目标服务器(自己的邮箱地址和邮箱授权码)
    3. 调用对象中的方法,发送邮件到目标地址

    python与smtp服务器之间的具体交互的通用代码:

    import smtplib
    server = smtplib.SMTP(mailserver, port)  # 发件人邮箱中的SMTP服务器,端口是25
    server.login(sender, passwd)  # 发件人邮箱账号、邮箱授权码
    # msg.as_string()中as_string()是将msg(MIMEText或MIMEMultipart对象)变为str。
    server.sendmail(sender, receive, msg.as_string())  
    server.quit()
    

    具体的python连接目标服务器的代码如下:注:本文章用的是qq的smtp服务器。
    常用邮箱的smtp服务器地址:
    新浪邮箱:smtp.sina.com,搜狐邮箱:smtp.sohu.com,qq邮箱:smtp.qq.com

    2.3 email模块的详细理解和使用

    email模块下的mime模块下有常用的三个模块,三个模块中有三个大类。其实就是下边这三个了,说的很绕,下边为导入方式,一目了然。

    from email.mime.text import MIMEText    
    from email.mime.image import MIMEImage
    from email.mime.multipart import MIMEMultipart    
    

    简单说下他们的关系,如果构造一个MIMEText对象,就表示一个文本邮件对象,如果构造一个MIMEImage对象,就表示一个作为附件的图片对象,要把多个对象组合起来,就用MIMEMultipart对象,他代表的是整个邮件。这样说应该还不是很清晰,下边就分开来说,最后会总的总结,在最后边就是完整的代码(可以发送一切内容的代码)。

    A.MIMEText对象中有三个需要我们设置的参数,一个是正文内容,一个是正文内容的类型,例如:”text/plain”和”text/html”,一个是正文内容的编码。

    十.email案例

    这里整理了一个发送邮件的案例。
    包含发送html、图片、附件等。

    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    from email.mime.image import MIMEImage
    import smtplib
    
    
    
    # 配置邮箱及密码
    from_mail = 'frommail@163.com'
    from_mail_password = 'passwd'
    to_mail = '2594398228@qq.com'
    
    
    
    # 设置总的邮件体对象,对象类型为mixed
    msg = MIMEMultipart('mixed')
    
    # 邮件的发件人及收件人信息
    msg['From'] = from_mail
    msg['To'] = to_mail
    
    # 邮件的主题
    msg['Subject'] = 'python mail test'
    
    
    # 构造文本内容
    text_info = 'hello world'
    text_sub = MIMEText(text_info, 'plain', 'utf-8')
    msg.attach(text_sub)
    
    
    # 构造超文本
    url = "https://blog.csdn.net/u010520724"
    html_info = """
    <p>点击以下链接,你会去向一个更大的世界</p>
    <p><a href="%s">click me</a></p>
    <p>i am very galsses for you</p>
    """% url
    html_sub = MIMEText(html_info, 'html', 'utf-8')
    # 如果不加下边这行代码的话,上边的文本是不会正常显示的,会把超文本的内容当做文本显示
    html_sub["Content-Disposition"] = 'attachment; filename="csdn.html"'
    # 把构造的内容写到邮件体中
    msg.attach(html_sub)
    
    
    # 构造图片
    image_file = open(r'E:\python\python.jpg', 'rb').read()
    image = MIMEImage(image_file)
    image.add_header('Content-ID', '<image1>')
    # 如果不加下边这行代码的话,会在收件方方面显示乱码的bin文件,下载之后也不能正常打开,这个地方也可以对文件重命名
    image["Content-Disposition"] = 'attachment; filename="red_people.png"'
    msg.attach(image)
    
    # 构造附件
    txt_file = open(r'E:\python\test2.py', 'rb').read()
    txt = MIMEText(txt_file, 'base64', 'utf-8')
    txt["Content-Type"] = 'application/octet-stream'
    #以下代码可以重命名附件为hello_world.txt
    txt.add_header('Content-Disposition', 'attachment', filename='test.py')
    msg.attach(txt)
    
    
    try:
        server = smtplib.SMTP('smtp.163.com')
        server.docmd('ehol', from_mail)
        server.starttls()
        server.login(from_mail,from_mail_password)
    
        server.sendmail(from_mail,to_mail,msg.as_string())
        server.quit()
        print('sendemail successful!')
    except Exception as e:
        print('sendemail failed next is the reason')
        print(e)
    

    查看发送记录:

    image.png

    参考:

    1.https://docs.python.org/zh-cn/3.6/library/email.html
    2.https://www.cnblogs.com/-wenli/p/10816927.html
    3.https://blog.csdn.net/chinesepython/article/details/82465947

    展开全文
  • SpringBoot整合Email 邮件发送

    万次阅读 多人点赞 2020-03-14 21:50:08
    在开发中,经常会碰到email邮件发送的场景 如发送验证码,向客户发送邮件等等。 今天,本项目将讲解通过Springboot 发送email 邮件 普通文本邮件 ,HTML内容板式邮件 ,包含静态资源邮件,以及带附件邮件。


    SpringBoot整合Email 邮件发送

    在开发中,经常会碰到email邮件发送的场景 如发送验证码,向客户发送邮件等等。

    今天,本项目将讲解通过Springboot 发送email 邮件 普通文本邮件 ,HTML内容板式邮件 ,包含静态资源邮件,以及带附件邮件。

    一.准备

    在创建SpringBoot项目 选择依赖时 发现其选择依赖时有邮件发送与Springboot整合的jar包,我们勾选即可
    在这里插入图片描述

    如果未勾选也不要紧,咱们手动导入

        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
    

    本项目是基于页面测试的,所以我又引入了相关web依赖 ,简化实体类代码引入了lombok依赖

        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <optional>true</optional>
        </dependency>
    

    二.邮件发送需要的配置

    因为各大邮件都有其对应安全系统,不是项目中想用就可以用的,我们必须要拿到其对应的客户端授权码才行,拿到授权码,在项目中配置SMTP服务协议以及主机 配置账户 ,就可以在项目中使用各大邮件运营商进行发送邮件了

    获取客户端授权码过程

    由于国内使用163邮箱以及qq邮箱较多 所以本文中仅仅展示这两个运营商获取客户端授权码的步骤

    获取163邮箱授权码

    登陆163邮箱
    查看勾选服务是否开启,如未开启则勾选
    在这里插入图片描述
    因为我在做本项目是已经是开启了,所以这里是叫我重置客户端授权码了
    在这里插入图片描述
    在未设置授权码时 点击此页面回叫你使用当前邮箱账号绑定的手机号 发送一条短信确认
    发送后,确认成功后,便可自定义163邮箱的客户端授权码了
    在这里插入图片描述
    ·····

    获取QQ邮箱授权码

    登陆qq邮箱后,点击设置 选择 账户选项
    在这里插入图片描述
    向下拉选择开启POP3/SMTP 服务
    在这里插入图片描述
    点击开启也会进入验证 验证成功后即可看到自己qq邮箱的客户端授权码了
    在这里插入图片描述
    在这里插入图片描述
    ······

    我们在拿到授权码后,就可以在我们Springboot工程中的配置文件 aplication.yml 或者properties文件中配置了

    YML配置

    spring:
      mail:
        #smtp服务主机  qq邮箱则为smtp.qq.com
        host: smtp.163.com
        #服务协议
        protocol: smtp
        # 编码集
        default-encoding: UTF-8
        #发送邮件的账户
        username: xxxxxxx@163.com
        #授权码
        password: xxxxxx
        test-connection: true
        properties:
          mail:
            smtp:
              auth: true
              starttls:
                enable: true
                required: true
    

    三.代码编写

    下面开始Springboot项目中发送邮件的代码编写

    其实也非常简单 ,Springboot已经给我们邮件发送进行了非常好的整合了,我们只需要注入邮件发送接口 调用其中的方法,就能轻松而愉悦的进行邮件发送了!

    我们只需要在任意交由Spring管理的类(例如你的service层等)下注入以下接口即可

      @Autowired
      private JavaMailSender mailSender;
    

    由于每一封邮件都有固定的内容 例如 收件人信息 邮件内容 邮件标题 那么我们充分利用java面向对象的特性,我们吧邮件发送抽取为一个对象

    代码采用了lombok进行简化

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class ToEmail implements Serializable {
    
      /**
       * 邮件接收方,可多人
       */
      private String[] tos;
      /**
       * 邮件主题
       */
      private String subject;
      /**
       * 邮件内容
       */
      private String content;
    }
    

    肯定有人纳闷了,那么接收方有了,发送方呢?

    发送一方,肯定就是我们自身拿到的授权码账号啊 ,我们获取账户客户端授权码其目的就是为了让代码代替我们自身邮箱 向其他邮箱发送信息而已

    获取发送方账户信息

      @Value("${spring.mail.username}")
      private String from;
    

    统一说明: JsonReturn 为我项目自定义的Ajax 响应,结合 RestController 或者Responsebody向前端返回统一的JSON格式数据

    普通邮件发送

    public JsonReturn commonEmail(ToEmail toEmail) {
        //创建简单邮件消息
        SimpleMailMessage message = new SimpleMailMessage();
        //谁发的
        message.setFrom(from);
        //谁要接收
        message.setTo(toEmail.getTos());
        //邮件标题
        message.setSubject(toEmail.getSubject());
        //邮件内容
        message.setText(toEmail.getContent());
        try {
          mailSender.send(message);
          return JsonReturn.buildSuccess(toEmail.getTos(), "发送普通邮件成功");
        } catch (MailException e) {
          e.printStackTrace();
          return JsonReturn.buildFailure("普通邮件方失败");
        }
    

    在这里插入图片描述
    在这里插入图片描述
    或许有人觉得 这样发送邮件 ,内容死板不好看啊,我想搞个有特色的的,搞个有样式的邮件,那么,下边就轮到HTML邮件出场了。

    HTML邮件发送

      public JsonReturn htmlEmail(ToEmail toEmail) throws MessagingException {
        //创建一个MINE消息
        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper minehelper = new MimeMessageHelper(message, true);
        //谁发
        minehelper.setFrom(from);
        //谁要接收
        minehelper.setTo(toEmail.getTos());
        //邮件主题
        minehelper.setSubject(toEmail.getSubject());
        //邮件内容   true 表示带有附件或html
        minehelper.setText(toEmail.getContent(), true);
        try {
          mailSender.send(message);
          return JsonReturn.buildSuccess(toEmail.getTos() + toEmail.getContent(), "HTML邮件成功");
        } catch (MailException e) {
          e.printStackTrace();
          return JsonReturn.buildFailure("HTML邮件失败");
        }
      }
    

    由于html格式不好编写,我直接使用Springboot测试类了

        @Test
        public void testHtml() throws Exception {
            String content = "<html>\n" +
                "<body>\n" +
                "    <h1>这是Html格式邮件!,不信你看邮件,我字体比一般字体还要大</h1>\n" +
                "</body>\n" +
                "</html>";
            toEmailService.htmlEmail(new ToEmail(new String[]{"248721866@qq.com"},"Html邮件",content));
        }
    

    在这里插入图片描述
    有的人还喜欢在邮件中添加一些图片,让图片作为邮件内容 ,,这也是可以的

    含静态资源邮件发送

    我这里只是列举了发送一张图片,如需发送多张,修改修改其中一点方法即可,代码注释的非常详细了

    public JsonReturn staticEmail(ToEmail toEmail, MultipartFile multipartFile, String resId) {
        //创建一个MINE消息
        MimeMessage message = mailSender.createMimeMessage();
        try {
          MimeMessageHelper helper = new MimeMessageHelper(message, true);
          //谁发
          helper.setFrom(from);
          //谁接收
          helper.setTo(toEmail.getTos());
          //邮件主题
          helper.setSubject(toEmail.getSubject());
          //邮件内容   true 表示带有附件或html
          //邮件内容拼接
          String content =
              "<html><body><img width='250px' src=\'cid:" + resId + "\'>" + toEmail.getContent()
                  + "</body></html>";
          helper.setText(content, true);
          //蒋 multpartfile 转为file
          File multipartFileToFile = MultipartFileToFile(multipartFile);
          FileSystemResource res = new FileSystemResource(multipartFileToFile);
    
          //添加内联资源,一个id对应一个资源,最终通过id来找到该资源
          helper.addInline(resId, res);
          mailSender.send(message);
          return JsonReturn.buildSuccess(toEmail.getTos() + toEmail.getContent(), "嵌入静态资源的邮件已经发送");
        } catch (MessagingException e) {
          return JsonReturn.buildFailure("嵌入静态资源的邮件发送失败");
        }
      }
    

    因为我当前没有使用文件服务器嘛,并未使用文件上传的URL 而是直接向接口传的multipartFile文件对象,但是邮件需要的是File对象,所以我们这里需要将multipartFile 转为 File

    将 multpartfile 转为file

    private File MultipartFileToFile(MultipartFile multiFile) {
        // 获取文件名
        String fileName = multiFile.getOriginalFilename();
        // 获取文件后缀
        String prefix = fileName.substring(fileName.lastIndexOf("."));
        // 若需要防止生成的临时文件重复,可以在文件名后添加随机码
    
        try {
          File file = File.createTempFile(fileName, prefix);
          multiFile.transferTo(file);
          return file;
        } catch (Exception e) {
          e.printStackTrace();
        }
        return null;
      }
    

    在这里插入图片描述
    注意还要传一个静态文件,我这里传一个图片,POSTMAN 传文件方法如下
    在这里插入图片描述
    在这里插入图片描述
    发附件需要注意的是一个静态资源要对应一个ID ,ID没有讲究 别重复了就行

    带附件邮件发送

    很多时候,我们在发送邮件的时候,需要携带一些附件一起发送,那么JavaMailSender 中呢,也是有携带附件的方法的

        public JsonReturn enclosureEmail(ToEmail toEmail, MultipartFile multipartFile) {
            //创建一个MINE消息
            MimeMessage message = mailSender.createMimeMessage();
            try {
                MimeMessageHelper helper = new MimeMessageHelper(message, true);
                //谁发
                helper.setFrom(from);
                //谁接收
                helper.setTo(toEmail.getTos());
                //邮件主题
                helper.setSubject(toEmail.getSubject());
                //邮件内容   true 表示带有附件或html
                helper.setText(toEmail.getContent(), true);
                File multipartFileToFile = MultipartFileToFile(multipartFile);
                FileSystemResource file = new FileSystemResource(multipartFileToFile);
                String filename = file.getFilename();
                //添加附件
                helper.addAttachment(filename, file);
                mailSender.send(message);
                return JsonReturn.buildSuccess(toEmail.getTos() + toEmail.getContent(), "附件邮件成功");
            } catch (MessagingException e) {
                e.printStackTrace();
                return JsonReturn.buildFailure("附件邮件发送失败" + e.getMessage());
            }
        }
    

    在这里插入图片描述
    在这里插入图片描述
    ok,一套打完收工,本次SpringBoot 整合email 邮件发送到这里就完了,一般项目中的使用也基本够用了,哈哈。
    项目源码:SpringBoot整合Email 邮件发送

    展开全文
  • commons-email-1.2.jar/email.jar/activation.jar

    千次下载 热门讨论 2012-05-07 11:53:22
    用commons-email-1.2.jar 发送邮件的三个jar 文件
  • commons-email邮件工具类的基本使用

    千次阅读 2019-08-14 15:31:07
    commons-email是apache提供的一个开源的API,是对javamail的封装,相比之下,apache-mail 显然要好用得多,不过这两者本质上实际是一样的,apache-mail 实际上就是将 javax.mail 中那些让人烦心的邮件配置封装掉了。...

    相关文章:

    JavaMail-使用Java发送邮件

    SpringBoot发送邮件


    简介:

    commons-email是apache提供的一个开源的API,是对javamail的封装,相比之下,apache-mail 显然要好用得多,不过这两者本质上实际是一样的,apache-mail 实际上就是将 javax.mail 中那些让人烦心的邮件配置封装掉了。

    引入jar包:

    <dependency>

        <groupId>org.apache.commons</groupId>

        <artifactId>commons-email</artifactId>

        <version>1.5</version>

    </dependency>

     

    以下代码分四部分:

    1.发送普通文本邮件。

    2.发送带附件的邮件。

    3.发送内嵌图片的邮件。

    示例:

    package com.zzs.commons.mail;

     

    import java.net.MalformedURLException;

    import java.net.URL;

     

    import org.apache.commons.mail.DefaultAuthenticator;

    import org.apache.commons.mail.Email;

    import org.apache.commons.mail.EmailAttachment;

    import org.apache.commons.mail.EmailException;

    import org.apache.commons.mail.HtmlEmail;

    import org.apache.commons.mail.ImageHtmlEmail;

    import org.apache.commons.mail.MultiPartEmail;

    import org.apache.commons.mail.SimpleEmail;

    import org.apache.commons.mail.resolver.DataSourceUrlResolver;

    import org.junit.Test;

     

    /**

     * 使用Commons-Email发送邮件

     */

    public class CommonsEmailTest {

        /**

         * 发送内容为简单文本的邮件

         */

        @Test

        public void sendSimpleTextEmail() throws EmailException {

           // 发送简单的email,不能添加附件

           Email email = new SimpleEmail();

     

           // 邮件服务器域名

           email.setHostName("smtp.sohu.com");

           // 邮件服务器smtp协议的SSL端口

           email.setSmtpPort(465);

           // 用户名和密码为邮箱的账号和密码

           email.setAuthenticator(new DefaultAuthenticator("用户名", "密码"));

           // SSL安全连接

           email.setSSLOnConnect(true);

           // 设置字符编码方式

           email.setCharset("UTF-8");

     

           // 发件人

           email.setFrom("xxx@sohu.com");

           // 收件人

           email.addTo("xxx@163.com");

    //     email.addTo(String... emails);//发送给多人

    //     // 抄送

    //     email.addCc("xxx");

    //     // 密送

    //     email.addBcc("xxx");

           // 邮件主题

           email.setSubject("测试邮件");

           // 邮件正文

           email.setMsg("This is a test mail from java application. 哈哈");

           // 发送

           email.send();

        }

     

        /**

         * 发送包含附件的邮件(附件为本地资源)

         */

        @Test

        public void sendEmailsWithAttachments() throws EmailException {

           // 附件类,可以添加本地资源,也可以指定网络上资源,在发送时自动将网络上资源下载发送

           EmailAttachment attachment = new EmailAttachment();

           // 本地路径

           attachment.setPath("E:\\test\\data\\mail\\123.jpg");

           // 定义附件

           attachment.setDisposition(EmailAttachment.ATTACHMENT);

           // 附件描述

           attachment.setDescription("Picture");

           // 附件名(为中文时要处理编码)

           attachment.setName("pic.jpg");

     

           // 文本邮件,可以添加多个附件

           MultiPartEmail email = new MultiPartEmail();

     

           email.setHostName("smtp.sohu.com");

           email.setAuthentication("用户名", "密码");

           email.setFrom("xxx@sohu.com");

           email.addTo("xxx@163.com");

     

           email.setSubject("测试邮件");

           email.setMsg("Here is a test mail.");

           email.attach(attachment);

     

           email.send();

        }

     

        /**

         * 发送包含附件的邮件(附件为在线资源)

         */

        @Test

        public void sendEmailsWithOnlineAttachments() throws EmailException, MalformedURLException {

           EmailAttachment attachment = new EmailAttachment();

           attachment.setURL(new URL("https://www.baidu.com/img/bd_logo1.png"));

           attachment.setDisposition(EmailAttachment.ATTACHMENT);

           attachment.setDescription("Baidu logo");

           attachment.setName("Baidu.png");

     

           MultiPartEmail email = new MultiPartEmail();

           email.setHostName("smtp.sohu.com");

           email.setAuthentication("用户名", "密码");

           email.setFrom("xxx@sohu.com");

           email.addTo("xxx@163.com");

     

           email.setSubject("测试邮件");

           email.setMsg("Here is Baidu's logo.");

           email.attach(attachment);

     

           email.send();

        }

     

        /**

         * 发送内容为HTML格式的邮件,内嵌图片

         */

        @Test

        public void sendHTMLFormattedEmail() throws EmailException, MalformedURLException {

           // HTML格式邮件,同时具有MultiPartEmail类所有功能

           HtmlEmail email = new HtmlEmail();

     

           email.setHostName("smtp.sohu.com");

           email.setAuthentication("用户名", "密码");

           email.setFrom("xxx@sohu.com");

           email.addTo("xxx@163.com");

     

           email.setSubject("测试邮件");

     

           // 图片的网络地址

           URL url = new URL("https://www.baidu.com/img/bd_logo1.png");

           String cid = email.embed(url, "Baidu logo");

     

           // 将图片引入html标签

           email.setHtmlMsg("<html>The Baidu logo <br/><img src='cid:" + cid + "'></html>");

     

           email.send();

        }

     

        /**

         * 发送内容为HTML格式的邮件,内嵌图片

         */

        @Test

        public void sendHTMLFormattedEmailWithEmbeddedImages() throws MalformedURLException, EmailException {

     

           // ImageHtmlEmail类通常是用来发送Html格式并内嵌图片的邮件,它拥有所有HtmlEmail的功能,但是图片主要是以html内嵌的为主

           ImageHtmlEmail email = new ImageHtmlEmail();

     

           email.setHostName("smtp.sohu.com");

           email.setSmtpPort(456);

           email.setSSLOnConnect(true);

           email.setAuthentication("用户名", "密码");

           email.setFrom("xxx@sohu.com");

           email.addTo("xxx@163.com");

           email.setCharset("UTF-8");

     

           email.setSubject("测试邮件");

           URL url = new URL("https://www.baidu.com");

           // 这样HTML内容里如果有此路径下的图片会直接内联

           email.setDataSourceResolver(new DataSourceUrlResolver(url));

           String htmlEmail = "这里<img src='https://www.baidu.com/img/bd_logo1.png'>有图片。";

           email.setHtmlMsg(htmlEmail);

     

           email.send();

        }

    }

     

    展开全文
  • Email正则表达式

    千次阅读 2021-05-18 09:36:44
    Email正则表达式日常整理大全 正则表达式在项目中经常会用到,特别email邮箱验证在注册用户信息时经常是必填项,下面由脚本之家小编给大家分享Email正则表达式日常整理,需要的朋友可以参考下介绍…...
  • 2.4-Email应用

    千次阅读 2022-03-19 15:57:10
    Email应用的构成组件: 邮件客户端 邮件服务器 SMTP协议(Simple Mail Transfer Protocol) 使用TCP进行Email传输,端口25 使用持久性连接 要求消息必须由7位ASCII码构成 SMTP服务器利用CRLF.CRLF确定消息的结束...
  • 如何实现一个 Email HTML 邮件模板

    千次阅读 2021-09-06 23:23:11
    我们也许会发现,我们在生活中收到的邮件,经常不是单纯地文字,往往会非常的丰富精彩,就像一个网页一样,是的,这就叫 Email HTML 一、开始探索 害,工欲善其事必先利其器,从设计那里拿设计图后,当时心想应该...
  • 当我在flask项目如下图建立表单时使用了Email验证器的时候,出现了让我安装‘email_validator’的提示,但我是根据书上的代码来敲的,就去找了一下原因:发现是2.3.0以后的WTForms已经不支持email验证器了,而我用来...
  • email格式怎么写 email格式应该怎么写

    千次阅读 2021-07-31 07:18:46
    email格式写法:1、打开手机或者电脑,打开任意一个浏览器,输入QQ邮箱,进入登录网站。2、登录QQ号,点击左侧“写信”,进入写信页面,填写收件人邮箱与邮件主题。3、点击“添加附件”并双击导入,上传完成后,正文...
  • File "C:\Users\wenrui\AppData\Local\Temp\pip-install-zuekqdy0\email\email\parser.py", line 10, in from cStringIO import StringIO ModuleNotFoundError: No module named 'cStringIO' --------------...
  • python 自动发送邮件需要用到 email模块,但是python3 在安装email包的时候出现了难以解决的问题。Looking in indexes: ...
  • commons-email-1.1.jar,mail-1.4.jar,activation-1.1.jar

    千次下载 热门讨论 2013-06-16 16:00:55
    activation-1.1 commons-email activation java发送邮件jar 教程: http://blog.csdn.net/sir_jun/article/details/9106397
  • auth, tlsConfig) 因为 Email 结构体的字段都是导出的,因此可以通过 &email.Email{} 这种形式创建实例,并直接为各个字段赋值; 带附件的邮件 如果邮件中需要带上附件,这个库很方便: e.AttachFile("test.txt") ...
  • Email,电子邮箱免费注册流程

    千次阅读 2022-04-24 15:58:31
    日常办公也是一样,申请一个好用的电子邮箱很重要,同事客户之间发送个文件都可以通过电子邮箱进行,并且现在很多平台注册帐号都需要填写email,比如百度账号,平台找回密码,企业营业执照年检等等。很多人都会问...
  • 摘要 腾兴网为您分享:JavaScript验证Email邮箱格式的三种方法,掌上看家,翼拍照,世纪佳缘,青蛙导航等软件知识,以及爱奇艺直播,汽车画报,西南证券大智慧,vr看车,联想g40,咸宁论坛,squats,济南公共资源,...
  • python发邮件详解,smtplib和email模块详解

    万次阅读 多人点赞 2018-09-06 18:20:56
    python发送邮件需要用到python自带的两个模块,smtplib和email。直接import导入,无需下载。 python的smtplib提供了一种很方便的途径发送电子邮件,它对smtp协议进行了简单的封装。 2.smtplib的用法 smtplib...
  • 【JS】使用 Emailjs 发送邮件

    千次阅读 2021-06-27 11:57:04
    ???? 背景突然需要一个后端发送邮箱验证码的功能,我使用的后端框架是基于 ... 安装最经典的 npm/yarn 安装:# Yarnyarn add emailjs# Npmnpm install emailjs???? 配置邮箱接下来需要一个可以使用的邮箱账户,因为...
  • SpringBoot整合email

    千次阅读 2019-05-25 15:32:53
    构建项目(以QQ邮箱为...你的邮箱密码,是授权码,授权码,授权码 (授权码获取方式在下面有) ###################################### ###Email ###################################### spring.mail.host=smtp.qq....
  • email_client = SMTP ( SMTP_host ) #初始化 SMTP类,SMTP服务使用的端口号默认为25,这里默认情况,也可自己设置port参数 email_client . login ( from_addr , password ) #登陆服务器 # 以下在下面...
  • JavaMail| Apache Commons Email介绍

    千次阅读 2018-02-01 18:12:40
    Apache Commons Email简介 Apache Commons Email旨在提供一个用于发送电子邮件的API。它建立在JavaMail API之上,旨在简化它。 官网: http://commons.apache.org/proper/commons-email/ 版本选择: ...
  • @Email注解爆红

    千次阅读 2020-07-24 16:14:42
    点击即可
  • Python 发送 email 的三种方式

    万次阅读 2018-10-18 08:44:27
    Python发送email的三种方式,分别为使用登录邮件服务器、使用smtp服务、调用sendmail命令来发送三种方法 原文请参见米扑博客:Python 发送 email 的三种方式 Python发送email比较简单,可以通过登录邮件服务来发送...
  • email 安装报错 No module named 'cStringIO'

    千次阅读 2020-04-17 15:50:12
    python 自动发送邮件需要用到 email,但是python3 在安装email包的时候出现了难以解决的问题。
  • Email Header 是什么

    万次阅读 2016-06-26 21:47:55
    Email Header 是什么-What is an Email Header 每天都收邮件,你是否注意到一个名词:Email Header。那这个东西究竟是什么,对我们有什么意义呢。 What is an Email Header  请参考链接地址:...
  • #email是个包,包里面有好几个模块,调用包(email)文本模块(mime.text)里的类(MIMEText)可以发文本消息 #服务器,端口 host = 'smtp.qq.com' port = 465 #我方账户,授权码 username = '**********@qq.com' ...
  • DHCP配置 然后PC1和PC2分别是 这样如果能自动获取到ip地址,即DHCP配置完成了 ...EMAIL配置 同理,配置PC2 下面是测试发送 pc1是发送邮件,pc2是接收邮件 即email配置好了 FTP配置 即FTP配置成功! ...
  • springboot中@Email报错解决

    千次阅读 2020-08-25 08:55:47
    现象:在springboot中使用@Email注解进行数据校验时,报没有该注解的错误。 原因:pom.xml里没有导入相关的依赖,需要添加并等待maven加载 解决:在pom.xml添加如下: <dependency> <groupId>org....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,144,842
精华内容 457,936
关键字:

email