Я очень новичок, и я хотел бы знать, можно ли отправлять почту только с именем хоста SMTP. Вот мой код:
Класс почты
public class Mail {
private String mailTo;
private String mailFrom;
private String suject;
private String mailContent;
private String contentType;
public Mail() {
contentType = "text/plain";
}
//GETTERS & SETTERS
}
Конфигурация почты
@Configuration
public class MailConfiguration {
@Value("${spring.mail.host}")
private String smtpHost;
@Bean
public JavaMailSender getMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost(smtpHost);
//mailSender.setPort();
//mailSender.setUsername();
//mailSender.setPassword();
Properties javaMailProperties = new Properties();
/***NOT SURE ABOUT BELOW PROPERTIES***/
//javaMailProperties.put("mail.smtp.starttls.enable", "true");
javaMailProperties.put("mail.smtp.auth", "false");
//javaMailProperties.put("mail.transport.protocol", "smtp");
//javaMailProperties.put("mail.debug", "true");
mailSender.setJavaMailProperties(javaMailProperties);
return mailSender;
}
}
Почта
@Service("mailService")
public class MailServiceImpl implements MailService {
@Autowired
JavaMailSender mailSender;
public void sendEmail(Mail mail) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setSubject(mail.getMailSubject());
mimeMessageHelper.setFrom(new InternetAddress(mail.getMailFrom(), "whats here?"));
mimeMessageHelper.setTo(mail.getMailTo());
mimeMessageHelper.setText(mail.getMailContent());
mailSender.send(mimeMessageHelper.getMimeMessage());
} catch (MessagingException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
Класс приложения
@SpringBootApplication
public class Application {
public static void main(String[] args) {
Mail mail = new Mail();
mail.setMailFrom("sender@demo.com");
mail.setMailTo("recipient@demo.com");
mail.setMailSubject("Mail subject");
mail.setMailContent("Mail body...");
ApplicationContext ctx = SpringApplication.run(Application.class, args);
MailService mailService = (MailService) ctx.getBean("mailService");
mailService.sendEmail(mail);
}
}
application.properties
spring.mail.host=some.mail.host.com
Я написал весь код. Но у меня есть только информация о хосте SMTP. Прежде всего, это возможно, чтобы отправить почту только с этим свойством. Если так, что я делаю не так? Я получаю исключение NullPointerException. Помощь будет принята с благодарностью. Заранее спасибо!