精华内容
下载资源
问答
  • 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 邮件发送

    展开全文
  • Java Email

    万次阅读 2013-09-27 15:50:01
    1.简单电子邮件例子之二: ...Email email = new SimpleEmail(); email.setHostName("smtp.qq.com");//qq email.setSmtpPort(465);//iport email.setAuthenticator(new DefaultAuthenticator("fromUser
    1.简单电子邮件例子之二:
    Email email = new SimpleEmail();
            email.setHostName("smtp.qq.com");//qq
            email.setSmtpPort(465);//iport
            email.setAuthenticator(new DefaultAuthenticator("fromUserName", "fromUserPwd"));
            email.setSSLOnConnect(true);
            try {
                email.setFrom("fromUserName@**.com");
                email.setSubject("TestMail");
                email.setMsg("This is a test mail ... :-)");
                email.addTo("toUserName@**.com");
                email.send();
            } catch (EmailException e) {
                e.printStackTrace();
            }
    //第二个
    Email email = new SimpleEmail();
            email.setHostName("smtp.qq.com");
            email.setAuthentication("fromUserName", "fromUserPwd");
            email.setCharset("UTF-8"); 
            email.setTLS(true); 
            try {
                email.setFrom("fromUserName@**.com");
                email.setSubject("TestMail");
                email.setMsg("This is a test mail ... :-)");
                email.addTo("toUserName@**.com");
                email.send();
            } catch (EmailException e) {
                e.printStackTrace();
            }
    2.添加附件,附件都是MIME进行编码
    以下这种方式,添加的附件是失败的, 附件的类型错误,但是内容正确
    EmailAttachment attachment = new EmailAttachment();
    		  attachment.setPath("g:/promise.jpg");
    		  attachment.setDisposition(EmailAttachment.ATTACHMENT);
    		  attachment.setDescription("to me");
    		  attachment.setName("to me ");
    
    		  // Create the email message
    		  MultiPartEmail email = new MultiPartEmail();
    		  email.setHostName("smtp.qq.com");
    //		  email.setSmtpPort(465);//iport
    //		  email.setAuthenticator(new DefaultAuthenticator("fromUserName", "fromUserPwd"));
    //		  email.setSSLOnConnect(true);
    		  email.setAuthentication("fromUserName", "fromUserPwd");
    		  email.setCharset("UTF-8"); 
    			email.setTLS(true); 
    		  try {
    			  email.addTo("toUserName@**.com");
    			  email.setFrom("fromUserName@**.com", "Me");
    			  email.setSubject("The picture");
    			  email.setMsg("Here is the picture you wanted");
    
    			  // add the attachment
    			  email.attach(attachment);
    
    			  // send the email
    			  email.send();
    		} catch (EmailException e) {
    			e.printStackTrace();
    		}
    第二个,发送特定url下的资源,作为附件
    EmailAttachment attachment = new EmailAttachment();
    		 try {
    			 //特定url出资源作为附件,发送,在接收的时候,会下载该资源,然后作为附件
    				attachment.setURL(new URL("http://www.apache.org/images/asf_logo_wide.gif"));
    			} catch (MalformedURLException e1) {
    				e1.printStackTrace();
    			}
    		//  attachment.setPath("g:\\promise.jpg");
    		  attachment.setDisposition(EmailAttachment.ATTACHMENT);
    		  attachment.setDescription("to me");
    		  attachment.setName("to me ");
    
    		  // Create the email message
    		  MultiPartEmail email = new MultiPartEmail();
    		  email.setHostName("smtp.qq.com");
    //		  email.setSmtpPort(465);//iport
    //		  email.setAuthenticator(new DefaultAuthenticator("fromUserName", "fromUserPwd"));
    //		  email.setSSLOnConnect(true);
    		  email.setAuthentication("fromUserName", "fromUserPwd");
    		  email.setCharset("UTF-8"); 
    			email.setTLS(true); 
    		  try {
    			  email.addTo("toUserName@**.com");
    			  email.setFrom("fromUserName@**.com", "Me");
    			  email.setSubject("The picture");
    			  email.setMsg("Here is the picture you wanted");
    
    			  // add the attachment
    			  email.attach(attachment);
    
    			  // send the email
    			  email.send();
    		} catch (EmailException e) {
    			e.printStackTrace();
    		}
    3.发送页面邮件
    	// Create the email message
    		  HtmlEmail email = new HtmlEmail();
    		  email.setHostName("smtp.qq.com");
    		  email.setAuthentication("fromUserName", "fromUserPwd");
    		  email.setCharset("UTF-8"); 
    		  email.setTLS(true); 
    		  
    		  try {
    			email.addTo("toUserName@163.com", "John Doe");
    			  email.setFrom("fromUserName@qq.com", "Me");
    			  email.setSubject("Test email with inline image");
    			  
    			  // embed the image and get the content id
    			  URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
    			  String cid = email.embed(url, "Apache logo");
    			  
    			  // set the html message
    			  email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"+cid+"\"></html>");
    
    			  // set the alternative message
    			  email.setTextMsg("Your email client does not support HTML messages");
    
    			  // send the email
    			  email.send();
    		} catch (MalformedURLException e) {
    			e.printStackTrace();
    		} catch (EmailException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    补充内容:

    The JavaMail API supports a debugging option that will can be very useful if you run into problems. You can activate debugging on any of the mail classes by calling setDebug(true). The debugging output will be written to System.out.

    Sometimes you want to experiment with various security setting or features of commons-email. A good starting point is the test class EmailLiveTest and EmailConfigurationwhich are used for testing commons-email with real SMTP servers.

    Authentication

    If you need to authenticate to your SMTP server, you can call the setAuthentication(userName,password) method before sending your email. This will create an instance ofDefaultAuthenticator which will be used by the JavaMail API when the email is sent. Your server must support RFC2554 in order for this to work.

    You can perform a more complex authentication method such as displaying a dialog box to the user by creating a subclass of the javax.mail.Authenticator object. You will need to override the getPasswordAuthentication() method where you will handle collecting the user's information. To make use of your new Authenticator class, use theEmail.setAuthenticator method.

    Security

    Nowadays you should not use plain SMTP protocol when using public SMTP servers but there is a some confusion regarding the available options.

    Two commons options are using

    • STARTTLS on port 25
    • SSL on port 465
    The following definitions were taken from Wikipedia
    • STARTTLS is an extension to plain text communication protocols, which offers a way to upgrade a plain text connection to an encrypted (TLS or SSL) connection instead of using a separate port for encrypted communication.
    • Transport Layer Security (TLS) and its predecessor, Secure Sockets Layer (SSL), are cryptographic protocols that provide communication security over the Internet.TLS and SSL encrypt the segments of network connections above the Transport Layer, using asymmetric cryptography for key exchange, symmetric encryption for privacy, and message authentication codes for message integrity.
    In addition you can force the following security checks (which are disabled by default)
    • When using a secured transport (STARTTLS or SSL) you can force validating the server's certificate by calling Email.setSSLCheckServerIdentity(true). Having said that this does not seem to work on any of my test servers (GMAIL, GMX).
    • Enforce using STARTTLS by calling Email.setStartTLSRequired(true)

    Handling Bounced Messages

    Normally, messages which cannot be delivered to a recipient are returned to the sender (specified with the from property). However, in some cases, you'll want these to be sent to a different address. To do this, simply call the setBounceAddress(emailAddressString) method before sending your email.

    Technical notes: When SMTP servers cannot deliver mail, they do not pay any attention to the contents of the message to determine where the error notification should be sent. Rather, they refer to the SMTP "envelope sender" value. JavaMail sets this value according to the value of the mail.smtp.from property on the JavaMail Session. (Commons Email initializes the JavaMail Session using System.getProperties()) If this property has not been set, then JavaMail uses the "from" address. If your email bean has the bounceAddress property set, then Commons Email uses it to set the value of mail.smtp.from when the Session is initialized, overriding any other value which might have been set.

    Note: This is the only way to control the handling of bounced email. Specifically, the "Errors-to:" SMTP header is deprecated and cannot be trusted to control how a bounced message will be handled. Also note that it is considered bad practice to send email with an untrusted "from" address unless you also set the bounce address. If your application allows users to enter an address which is used as the "from" address on an email, you should be sure to set the bounce address to a known good address.






    展开全文
  • EMAIL 配置管理员配置Email发送配置示例 管理员配置 ADMINS 获得代码错误通知的所有人员的列表,可以无视。 ADMINS = [('name', 'email@example.com')] 默认值:([]空列表) Email发送配置 示例 EMAIL_BACKEND =...

    内容介绍

    开发环境为 Python3.6,Django 版本 3.0.x ,全部内容索引目录

    看懂Django框架,没有最好只有更好

    本文介绍配置 Django 电子邮件配置,以及相关参数说明。

    管理员配置

    # Settings.py中添加
    # 获得代码错误通知的所有人员的列表,可以无视
    # 默认值:([]空列表)
    ADMINS = [('name', 'email@example.com')]
    

    参数说明

    项目常用配置

    # 模板
    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_HOST = "邮箱服务器"
    EMAIL_PORT = 邮箱端口号
    EMAIL_HOST_USER = "你的邮箱"
    EMAIL_HOST_PASSWORD = "发送邮件密码,不是登陆的密码"
    EMAIL_USE_TLS = True
    EMAIL_FROM = EMAIL_HOST_USER
    
    # 示例 QQ邮箱举例
    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_HOST = "smtp.qq.com"
    EMAIL_PORT = 25
    EMAIL_HOST_USER = "你的邮箱"
    EMAIL_HOST_PASSWORD = "发送邮件密码,不是登陆的密码"
    EMAIL_USE_TLS = True
    EMAIL_FROM = EMAIL_HOST_USER
    

    1.EMAIL_BACKEND

    # 默认值
    'django.core.mail.backends.smtp.EmailBackend'
    # 用来发送电子邮件的后端
    

    2.EMAIL_FILE_PATH

    # 默认值:未定义
    # 由所使用的目录文件的电子邮件后端存储输出文件
    

    3.EMAIL_HOST

    # 默认值
    'localhost'
    # 用于发送电子邮件的主机。
    
    

    4.EMAIL_HOST_PASSWORD

    # 默认值:( ' ' 空字符串)
    # EMAIL_HOST_USER验证SMTP服务器的密码,不是邮箱密码。
    

    5.EMAIL_HOST_USER

    # 默认值:( ' ' 空字符串)
    # SMTP服务器的用户名
    

    6.EMAIL_PORT

    # 默认值:25
    # SMTP服务器的端口号。
    

    7.EMAIL_SUBJECT_PREFIX

    # 默认值
    '[Django] '
    # 发送的电子邮件的主题行前缀
    
    

    8.EMAIL_USE_LOCALTIME

    # 默认值:False
    # 本地时区(True)或UTC(False)
    

    9.EMAIL_USE_TLS

    # 默认值:False 
    # 与SMTP服务器通讯时是否使用TLS(安全)连接,通常在端口587上
    

    10.EMAIL_USE_SSL

    # 默认值:False
    # 与SMTP服务器通讯时是否使用TLS(安全)连接,通常在端口465上
    

    11.EMAIL_SSL_CERTFILE

    # 默认值:None
    # 如果EMAIL_USE_SSL或者EMAIL_USE_TLS是True
    # 可以选择指定路径到PEM格式的证书链文件,以用于SSL连接
    
    

    12.EMAIL_SSL_KEYFILE

    # 默认值: None
    # 如果EMAIL_USE_SSL或者EMAIL_USE_TLS是True
    # 可以选择指定路径到PEM格式的私钥文件以用于SSL连接
    

    13.EMAIL_TIMEOUT

    # 默认值: None
    # 指定超时(以秒为单位)以阻止诸如连接尝试之类的操作
    
    展开全文
  • 检查email格式并确保email唯一

    千次阅读 2018-05-07 14:01:39
    $panelBefore.find('.email-input').on('input', function () { var $this = $(this), $subEmail = $panelBefore.find('.submit-newemail'), ...
    $panelBefore.find('.email-input').on('input', function () {
                            var $this = $(this),
                                $subEmail = $panelBefore.find('.submit-newemail'),
                                email = $.trim($this.val()),
                                pattern = /\w+([\-+.']\w+)*@\w+([\-.]\w+)*\.\w+([\-.]\w+)*/,
                                $recognised = $panelBefore.find('.recognised');
    
                            if (ajaxRegisterEmail !== undefined) {
                                ajaxRegisterEmail.abort();
                            }
    
                            if (email !== '' && pattern.test(email)) {
                                ajaxRegisterEmail = $.ajax({
                                    url: getUncachedUrl('/' + currentLanguage + '/Base/BaseHandler'),
                                    type: 'POST',
                                    data: {
                                        act: 'validate-email',
                                        email: email
                                    },
                                    success: function (data) {
                                        if (data.status === 's') {
                                            $recognised.slideDown();
                                            $subEmail.prop('disabled', true);
                                        } else {
                                            $recognised.hide();
                                            $subEmail.prop('disabled', false);
                                        }
                                    }
                                });
                            } else {
                                if (email === '') {
                                    $subEmail.prop('disabled', true);
                                } else {
                                    $subEmail.prop('disabled', false);
                                }
                                $recognised.hide();
                            }
    
                        });

    展开全文
  • Yahoo Email VS 163 Email

    千次阅读 2012-08-14 21:17:14
    Yahoo Email里太多了垃圾邮件,也不知道是yahoo不愿意过滤呢,还是技术上不行呢,什么Yahoo12条,估计背后有其他缘由。 163 感觉 功能太多,让我一下都不知道怎样,总体省去了我每天删除大量的垃圾邮件,赞一下
  • commons-email-1.2.jar/email.jar/activation.jar

    千次下载 热门讨论 2012-05-07 11:53:22
    用commons-email-1.2.jar 发送邮件的三个jar 文件
  • Jenkis邮件通知:Email Extension Plugin

    千次阅读 2018-06-06 09:04:37
    Email Extension Plugin
  • function isValidEmailAddress(emailAddress) { var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\u
  • import email.utils ModuleNotFoundError: No module named ‘email.utils’; ‘email’ is not a package 最基本的就是安装这个模块,但是email是python自带的 后来网上查了原因 先确保你的当前文件夹中不要有email....
  • Email Header 是什么

    万次阅读 2016-06-26 21:47:55
    Email Header 是什么-What is an Email Header 每天都收邮件,你是否注意到一个名词:Email Header。那这个东西究竟是什么,对我们有什么意义呢。 What is an Email Header  请参考链接地址:...
  • jenkins email-ext plugin Email Template Testing

    千次阅读 2015-04-10 10:52:37
    I started using the email-ext plugin. I added the plugin as "post build" step to a configuration. A job was built and now I want to send an test email.  Here is what I did: - Create the folder $JE
  • C# Email发送邮件

    千次阅读 2018-07-23 17:38:23
    本文实例为大家分享了C# Email发送邮件的具体代码,供大家参考,具体内容如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing...
  • Java发送email邮件

    千次阅读 2016-02-23 14:41:50
    Java发送email邮件
  • commons-email-1.3.jar

    千次下载 热门讨论 2013-06-04 16:32:57
    commons email 1.3.jar
  • 常用正则表达式—邮箱(Email

    万次阅读 多人点赞 2016-06-14 17:48:05
    常用正则表达式—邮箱(Email)本文针对有一点正则基础的同学,如果你对正则一无所知,请移步“正则表达式30分钟入门教程”学习。要验证一个字符串是否为邮箱的话,首先要了解邮箱账号的格式。我尝试过在网上找出一...
  • logstash output email

    千次阅读 2018-06-14 14:13:28
    email { to =&gt; "xxxxxx@163.com" from =&gt; "xxxxxxx" username =&gt; "xxxxx" password =&gt; "xxxxxxxx" address =&gt; "smtp....
  • Commons Email-电子邮件发送

    千次阅读 2018-01-15 17:29:32
    Commons Email简介 Commons Email 的配置 Commons Email 的用法 开通POP3SMTP服务 发送电子邮件源码 Mail源码 MailAction源码 测试代码MailTest源码 测试的结果 资源链接 Commons Email 官网地址 ...
  • git config --global user.email “你的邮箱” 查看配置 git config --list 修改你的用户名和邮箱 git config --global --replace-all user.name “你的用户名” git config --global --replac...
  • flask-WTF 出现**raise Exception(“Install ‘email_validator’ for email validation support.”)**问题 解决办法: 安装的 WTForms 模块版本过高导致,版本回退到合适版本即可解决问题!
  • 一开始将文件名命名为email.py,运行的时候报错ModuleNotFoundError: No module named 'email.mime'; 'email' is not a package,将文件名改成emailUtil.py(或其他)就可以了。主要是因为和Python内置的ema...
  • Python 发送 email 的三种方式

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

    千次阅读 2020-03-27 21:19:14
    运行一段发送邮件的python代码时,报如下错误: ImportError:Nomodule named'email.mime';emailisnota package 执行:pip install email ,报错 执行:easy_install email,OK
  • 计算机网络 Email应用

    万次阅读 2018-11-25 13:15:53
    email消息只能包含7为ASCII码 使用持久性连接 使用回车换行(CRLF).CRLF确认消息的结束   与http对比 http 拉式 smtp 推式 使用命令/响应格式 命令与状态代码都是ASCII码 http 每个对象...
  • @Valid + @Email 示例

    千次阅读 2019-06-12 10:53:31
    @PostMapping("/dada") public Object getEmail(@RequestBody @Valid AEmail aemail) { System.out.println("aemail:" + aemail.email); return "fff"; } public static clas...
  • Cisco Packet Tracer的Email服务

    千次阅读 2018-12-06 09:05:05
    Email service 服务器(图片左上角的服务器)的配置: DNS service 服务器(图片右上角的服务器)的配置: PC0(左下角的电脑)配置: PC1(右下角的电脑)配置: 配置IP地址时需要注意电脑的要配DNS Server 测试效果 PC0...
  • Java正则表达式email

    千次阅读 2018-12-14 20:22:29
    学习Java中正则表达式-验证email邮箱 public static void main(String[] args) { // 要验证的字符串 String str = "service@xsoftl...
  • Jenkins pipeline获取Build User和Email

    千次阅读 2019-09-03 18:02:57
    文章目录Jenkins pipeline获取Build User和Email安装User Build Vars插件Jenkins pipeline demo参考文档 Jenkins pipeline获取Build User和Email 安装User Build Vars插件 打开Manage Jenkins / Manage Plugins,...
  • django发送带附件email

    千次阅读 2018-11-27 15:34:02
    开发环境: python:3.6 django:1.11.8 settings.py配置: # settings.py ...EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_USE_SSL = True EMAIL_HOST = 'smtp.qq.com' # 如...
  • email 安装报错 No module named 'cStringIO'

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 903,005
精华内容 361,202
关键字:

email