SpringBoot实现发送邮件、发送微信公众号推送

SpringBoot实现发送邮件、发送微信公众号推送

SpringBoot实现发送邮件

  JavaMailSender是Spring封装的邮件发送封装类,支持普通文本、附件、html等格式。

pom.xml

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

application.yml

代码实现

  带附件的格式发送邮件需要借助JavaMailSender对象的createMimeMessage()方法创建的实例MimeMessage作为发送对象,而设置邮件参数通过MimeMessageHelper对象完成。   我们创建EmailUtil工具类,在其中定义sendMail方法进行邮件发送,EmailUtil完整代码如下:

@Component
public class EmailUtil {
          
   

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

	@Resource
	private JavaMailSender javaMailSender;
	
	public boolean sendMail(String email, String subject, String text) {
          
   

		MimeMessage mimeMessage = javaMailSender.createMimeMessage();

		try {
          
   
			MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
			// 设置发件人
			mimeMessageHelper.setFrom(from);
			// 设置收件人
			mimeMessageHelper.setTo(email);
			// 设置邮件主题
			mimeMessageHelper.setSubject(subject);

			// 设置发送的文本信息
			mimeMessageHelper.setText(text);

			javaMailSender.send(mimeMessage);
			return true;

		} catch (MessagingException e) {
          
   
			e.printStackTrace();
			return false;
		}
	}
}

  这里对成员变量JavaMailSender使用了@Resource注解。@Resource注解和@Autowired注解类似,都用来声明需要自动装配的bean,区别在于@Autowired是类型驱动的注入,而@Resource是名称驱动的注入,所以前者存在多bean问题,而后者,只要保证bean命名唯一就不会出现多bean的问题。

pom.xml

<dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-mp</artifactId>
            <version>3.3.0</version>
        </dependency>

代码实现

  各个配置项例如appId和secret等都需要在application.yml中配置,然后用@Value注解将我们配置文件的属性读出来,我这里是偷懒了

经验分享 程序员 微信小程序 职场和发展