2017-02-23 64 views
1

我使用it.ozimov库实现了电子邮件服务。当所有东西都被导入时,发送方法有问题。我无法弄清楚它应该如何导入,因为现在服务看不到它。it.ozimov的电子邮件服务无法看到发送方法

这依赖其附上

<dependency> 
     <groupId>it.ozimov</groupId> 
     <artifactId>spring-boot-email-core</artifactId> 
     <version>0.4.2</version> 
    </dependency> 
    <dependency> 
     <groupId>it.ozimov</groupId> 
     <artifactId>spring-boot-freemarker-email</artifactId> 
     <version>0.4.2</version> 
    </dependency> 

在这里它是一个业务码

@Autowired 
public EmailService emailService; 

public void sendEmailWithoutTemplating() throws UnsupportedEncodingException { 
    final Email email = DefaultEmail.builder() 
      .from(new InternetAddress("[email protected]", "Marco Tullio Cicerone ")) 
      .to(Lists.newArrayList(new InternetAddress("[email protected]", "Pomponius Attĭcus"))) 
      .subject("Laelius de amicitia") 
      .body("Firmamentum autem stabilitatis constantiaeque eius, quam in amicitia quaerimus, fides est.") 
      .encoding(String.valueOf(Charset.forName("UTF-8"))).build(); 

    emailService.send(email); 
} 

当然,我加入下面的代码在属性:

spring.mail.host=smtp.gmail.com 
spring.mail.port=587 
[email protected] 
spring.mail.password=V3ry_Str0ng_Password 
spring.mail.properties.mail.smtp.auth=true 
spring.mail.properties.mail.smtp.starttls.enable=true 
spring.mail.properties.mail.smtp.starttls.required=true 

spring.mail.scheduler.persistence.enabled=false 
spring.mail.scheduler.persistence.redis.embedded=false 
spring.mail.scheduler.persistence.redis.enabled=false 

回答

1

首先,更新依赖关系:

<dependency> 
    <groupId>it.ozimov</groupId> 
    <artifactId>spring-boot-email-core</artifactId> 
    <version>0.5.0</version> 
</dependency> 
<dependency> 
    <groupId>it.ozimov</groupId> 
    <artifactId>spring-boot-freemarker-email</artifactId> 
    <version>0.5.0</version> 
</dependency> 

然后,设置应用程序属性:

spring.mail.host: smtp.gmail.com 
spring.mail.port: 587 
spring.mail.username: [email protected] 
spring.mail.password: Th3MuleWh0 
spring.mail.properties.mail.smtp.auth: true 
spring.mail.properties.mail.smtp.starttls.enable: true 
spring.mail.properties.mail.smtp.starttls.required: true 

最后创建一个测试服务

package com.test; 

import com.google.common.collect.Lists; 
import it.ozimov.springboot.mail.model.Email; 
import it.ozimov.springboot.mail.model.defaultimpl.DefaultEmail; 
import it.ozimov.springboot.mail.service.EmailService; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Service; 

import javax.mail.internet.InternetAddress; 
import java.io.UnsupportedEncodingException; 

import static com.google.common.collect.Lists.newArrayList; 

@Service 
public class TestService { 

    @Autowired 
    private EmailService emailService; 

    public void sendEmail() throws UnsupportedEncodingException { 
     final Email email = DefaultEmail.builder() 
       .from(new InternetAddress("[email protected]", 
         "Hari Seldon")) 
       .to(newArrayList(
         new InternetAddress("[email protected]", 
         "Cleon I"))) 
       .subject("You shall die! It's not me, it's Psychohistory") 
       .body("Hello Planet!") 
       .encoding("UTF-8").build(); 

     emailService.send(email); 
    } 

} 

收费极端重视导入的包。

最后,你需要使用注释

@EnableEmailTools 

你可以找到更多的this article,使您的主应用程序的扩展名。