您现在的位置是:主页 > news > 从色彩度讨论如何建设一个网站./无锡营销型网站建站

从色彩度讨论如何建设一个网站./无锡营销型网站建站

admin2025/6/14 0:59:48news

简介从色彩度讨论如何建设一个网站.,无锡营销型网站建站,肥猫网站建设,网站建设前1.应用场景 邮件功能的应用场景可谓十分广泛,诸如注册用户、密码找回,消息通知、以及一些程序异常通知等都需要使用到该功能。 正是由于邮件功能的使用广泛,因此springboot也加在它的组件中添加了邮件。 2.maven依赖 springboot中已经给我们准…

从色彩度讨论如何建设一个网站.,无锡营销型网站建站,肥猫网站建设,网站建设前1.应用场景 邮件功能的应用场景可谓十分广泛,诸如注册用户、密码找回,消息通知、以及一些程序异常通知等都需要使用到该功能。 正是由于邮件功能的使用广泛,因此springboot也加在它的组件中添加了邮件。 2.maven依赖 springboot中已经给我们准…

1.应用场景

邮件功能的应用场景可谓十分广泛,诸如注册用户、密码找回,消息通知、以及一些程序异常通知等都需要使用到该功能。

正是由于邮件功能的使用广泛,因此springboot也加在它的组件中添加了邮件。

 

2.maven依赖

springboot中已经给我们准备好了邮件的相关组件,我们只要在springboot项目中将其添加即可。

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

添加后继续查看这个组件的相关依赖(下图),可见里面实际也是封装了javax.mail的邮件收发相关类。

 

3.普通邮件发送

我们首先编写一个简单text邮件的样例,之后会再在样例的demo上进行其他几种复杂邮件的发送,以及部分源码的解析。

3.1.配置文件

#我这里使用QQ邮箱来发送邮件,因此配置的host是smtp.qq.com,使用其他邮箱需要找到对应的host
spring.mail.host=smtp.qq.com
#发送邮件的邮箱账号
spring.mail.username=*********@qq.com
#发送邮件的邮箱的SMTP服务密码(有的邮箱使用的是邮箱密码,不同邮箱可能不同)
spring.mail.password=**********
#是否进行身份验证
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

3.2.使用方法

@Component
public class EmailService {@Autowiredprivate JavaMailSender mailSender;public void sendMsg() {SimpleMailMessage mailMessage = new SimpleMailMessage();// 邮件发送者,这里不能随便填写,必须是真实的发送邮件的邮箱名称mailMessage.setFrom("527724431@qq.com");// 邮件接受者mailMessage.setTo("18373143942@sina.cn");// 邮件主题mailMessage.setSubject("testSubject");// 邮件内容mailMessage.setText("hello email!");// 发送邮件mailSender.send(mailMessage);}}

3.3.测试代码

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {@Autowiredprivate EmailService emailService;@Testpublic void contextLoads() {emailService.sendMsg();}}

3.4查看邮箱

 

4.复杂邮件发送

复杂邮件分为很多种情况,由于篇幅有限,这里只简单列举其中几种。

4.1多个邮件接收人

我们查看上面方法中设置的setTo()源码:

    public void setTo(String to) {this.to = new String[]{to};}public void setTo(String... to) {this.to = to;}

可见里面实际是将我们传入的参数作为数组来接受的,因此我们可以以下面的两种形式来将邮件发送给多个接收者:

  1. 数组。
  2. 多个参数。
        // 邮件接受者mailMessage.setTo("","","");mailMessage.setTo(new String[]{"",""});

4.2抄送

添加抄送者与添加接受者的方式差不多,区别在于方法名,添加抄送者方法为setCc():

    public void setCc(String cc) {this.cc = new String[]{cc};}public void setCc(String... cc) {this.cc = cc;}

同样也可以添加一个,或以数组和多参数形式添加多个抄送者:

        // 邮件抄送者mailMessage.setCc("");mailMessage.setCc("","");mailMessage.setCc(new String[]{"",""});

4.3发送带路径的邮件

复杂邮件与简单邮件相比,这里使用的消息类不再是SimpleMailMessage。而是由邮件发送器JavaMailSender生成的MimeMessage作为消息类,同时加以一个辅助类MimeMessageHelper进行消息的添加。

    public void sendComplexMsg() {MimeMessage message = mailSender.createMimeMessage();try {
// 生成消息辅助类,注意后面的true是用来决定是否添加附件MimeMessageHelper messageHelper = new MimeMessageHelper(message, true);messageHelper.setSubject("testSubject");messageHelper.setFrom("527724431@qq.com");messageHelper.setTo("18373143942@sina.cn");
// 这里后面的true,用来让text内容以html格式进行展示,如果不设置,里面的链接会被作为普通字符串展示messageHelper.setText("
<a href=\"#\">链接</a>", true);} catch (MessagingException e) {e.printStackTrace();}mailSender.send(message);}

4.4添加附件

添加附件和添加带路径内容差不多,区别只在于多使用了"addAttachment()"方法。方法第一个参数是附件在邮件中的命名,第二个参数是要上传的文件。

一个邮件可以添加多个附件,只要继续调用addAttachment()方法即可。

但要注意的是,发送附件文件时,setText()必须要被调用,否则程序将抛出异常,无法发送邮件。

    public void sendComplexMsg() {MimeMessage message = mailSender.createMimeMessage();try {MimeMessageHelper messageHelper = new MimeMessageHelper(message, true);messageHelper.setSubject("testSubject");messageHelper.setFrom("527724431@qq.com");messageHelper.setTo("18373143942@sina.cn");messageHelper.setText("<a href=\"#\">链接</a>", true);messageHelper.addAttachment("附件", new File("D://yxf//123.txt"));} catch (MessagingException e) {e.printStackTrace();}mailSender.send(message);}

4.5

 

转载于:https://www.cnblogs.com/yxth/p/11202837.html