我正在使用spring boot 2.0.7 Release
和spring-boot-starter-mail-2.0.7.Release.
我javaMailsender
在班级内部自动装配在 Windows 上工作正常,同时尝试部署解决Unix
belwo 问题
APPLICATION FAILED TO START
***************************
Description:
Field javaMailSender in com.fti.di.capstock.tran.pub.email.SendEmail required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'org.springframework.mail.javamail.JavaMailSender' in your configuration.
Run Code Online (Sandbox Code Playgroud)
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessagingException;
import org.springframework.stereotype.Component;
import com.fti.di.capstock.tran.pub.constants.ApplicationFlowConstants;
import com.fti.di.integration.constants.IntegrationConstants;
import com.fti.di.integration.util.StringUtil;
@Component("sendEmail")
public class SendEmail {
@Autowired
private JavaMailSender javaMailSender;
@Autowired
Environment env;
@ServiceActivator
Run Code Online (Sandbox Code Playgroud)
小智 12
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
@Configuration
public class Config {
@Bean
public JavaMailSender javaMailSender() {
return new JavaMailSenderImpl();
}
}
Run Code Online (Sandbox Code Playgroud)
JavaMailSenderImpl()
您还可以从上面返回一个实例,@Bean
这样当您尝试返回实际的类时,就不必实现一堆方法了JavaMailSender()
。
Sam*_*eim 11
您必须在application.properties中提供邮件配置
spring.mail.host=MAIL_SERVER_IP
spring.mail.port=MAIL_SERVER_PORT
spring.mail.userName=USER_NAME
spring.mail.password=THE_PASSWORD
Run Code Online (Sandbox Code Playgroud)
如果服务器中未启用身份验证,则删除用户名和密码并添加此内容
spring.mail.properties.mail.smtp.auth=false
spring.mail.properties.mail.smtp.starttls.enable=false
Run Code Online (Sandbox Code Playgroud)
JavaMailSender
在 Configuration 类中声明该类型的 @Bean (当您想要注入一个不属于 Spring Context 的类时,这很有用,例如属于 3rd-party lib 的类,这恰好是您的情况) . 例如:
@Configuration
public class MyConfig {
@Bean
public JavaMailSender javaMailSender() {
return new JavaMailSender();
}
}
Run Code Online (Sandbox Code Playgroud)
确保您也设置了正确的属性application.properties
。
另外,看看这个问题,因为我相信这是重复的(如果不是,我很抱歉)
归档时间: |
|
查看次数: |
6861 次 |
最近记录: |