JavaEmail的使用

邮箱发送JavaEmail的使用

JavaMailSenderImpl是Spring官方提供的集成邮件服务的接口和实现类,以简单高效的设计著称,目前是Java后端发送邮件和集成邮件服务的主流工具。

发送邮件: JavaMailSender.send( 带发送的邮件 )

简单邮件:SimpleMailMessage类

附件邮件:借助 MimeMessageHelper 发送MimeMessage

Spring Boot : 开箱即用JavaMailSender。 邮件自动配置类(MailSenderPropertiesConfiguration) 为上下文提供了邮件服务实例(JavaMailSenderImpl), MailProperties提供邮件服务器配置。

spring:
  mail:
    default-encoding: utf-8
    host: smtp.163.com
    username: ####@163.com  #发送者的邮箱
    password: USAHDZJJEZYITFBV  #邮箱提供的授权码
    protocol: smtp
    port: 25
    properties:
      "mail.smtp.connectiontimeout": 50000
      "mail.smtp.timeout": 30000
      "mail.smtp.writetimeout": 50000
      "mail.debug": true
  @Resource
    JavaMailSender mailSender;
    /**
     * 简单邮件SimpleMailMessage类
     * 创建对象,
     * 设置 收 发 人
     * 设置 邮件主题
     * 设置 邮件正文
     *
     * 发送邮件 send
     *
     */
    @Test
    void testSimpleMail() {
        SimpleMailMessage simple = new SimpleMailMessage();
        simple.setFrom("#@163.com"); //发送者
        simple.setTo("#@qq.com");     //接收者
        simple.setSubject("一个简单邮件");         //主题
        simple.setText("这是我的第一个客户端发送的邮件"); //正文
        mailSender.send(simple);
    }

    //带附件的

    @Test
    void testAttach() throws MessagingException {
        //邮件
        MimeMessage mimeMailMessage = mailSender.createMimeMessage();
        //使用Helper辅助设置 邮件的参数  true:表示支持附件
        MimeMessageHelper helper = new MimeMessageHelper(mimeMailMessage,true);

        //使用Helper设置参数
        helper.setFrom("#@163.com"); //发送者
        helper.setTo("#@qq.com");     //接收者
        helper.setSubject("带有正文的邮件");         //主题
        helper.setText("请查看附件"); //正文

        //添加附件, 一个或多个文件
        //参数1 :附件名称 , 参数2:附件文件
        helper.addAttachment("手机5月账单", new File("E:\\test.txt"));

        //发送邮件
        mailSender.send( helper.getMimeMessage() );
    }
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,@Email注解是javax.validation.constraints包中的一个注解,用于验证字符串是否符合电子邮件的格式。它可以应用于String类型的字段或方法参数上。 使用@Email注解需要先引入相关的依赖,例如在Maven项目中可以添加以下依赖: ```xml <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> </dependency> ``` 然后,在需要验证的字段或方法参数上添加@Email注解,示例如下: ```java public class User { @Email(message = "请输入有效的电子邮件地址") private String email; // 省略其他字段和方法 } ``` 在上述示例中,email字段使用了@Email注解,并指定了一个自定义的错误消息。当使用该注解对User对象进行验证时,如果email字段的值不符合电子邮件格式,将会抛出一个验证异常。 可以通过使用验证器来验证带有@Email注解的字段或方法参数,示例如下: ```java import javax.validation.Validation; import javax.validation.Validator; import javax.validation.ValidatorFactory; public class Main { public static void main(String[] args) { ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); User user = new User(); user.setEmail("invalid_email"); Set<ConstraintViolation<User>> violations = validator.validate(user); for (ConstraintViolation<User> violation : violations) { System.out.println(violation.getMessage()); } } } ``` 在上述示例中,我们创建了一个Validator对象,并使用validate方法对User对象进行验证。如果email字段的值不符合电子邮件格式,将会打印出自定义的错误消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值