Spring Boot Email Uygulama Örneği
Spring Boot Dersleri‘ne devam ediyoruz.
Spring Boot kullanarak bir email uygulaması yapacağız. Bu uygulama bu zamana kadar gördüğümüz konuların bir özeti olacak nitelikte olacaktır. Spring Boot uygulamamız maven projesi olacaktır. Bağımlılıklarımıza bakalım.
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.burakkutbay</groupId> <artifactId>mailexample</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>mailexample</name> <description>Email project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
Spring Boot uygulamamızda mail gönderimi için gerekli olan bağımlılığımız,
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
bağımlılığıdır.
Mail gönderme işlemini gerçekleştirecek olan controller classımızı oluşturalım.
@Controller public class MailController { @Autowired private JavaMailSender mailSender; public String sendMail() { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage); try { messageHelper.setTo("emailadress"); messageHelper.setText("içerik:)"); messageHelper.setSubject("Konu"); } catch (MessagingException e) { e.printStackTrace(); return "Error..."; } mailSender.send(mimeMessage); return "Mail Sent!"; } }
Controller classımızda JavaMailSender kütüphanemiz mailimizi gönderecek olan kütühanemizdir. MimeMessage ve MimeMessageHelper mailimizin içeriğini oluşturmada yardımcı olacak kütüphanedir. MimeMessageHelper’in setTo , setText ve setSubject değerlerini kullanarak mail içeriğimizi giriyoruz.
mailSender.send diyerek gönderme işlemini sağlıyoruz.
Mail göndermek için gerekli sunucu ve port ayarlarını ise application.properties dosyasından ayarlamaktayız.
spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username=emailadress spring.mail.password=password spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.connectiontimeout=5000 spring.mail.properties.mail.smtp.timeout=5000 spring.mail.properties.mail.smtp.writetimeout=5000
Bu ayarlara bakacak olursak;
- host: Mail serverin adresi
- port: Serverin mail portuı
- username: gönderme hizmetini kullanacağız email
- password: parolanız
- starttls: şifreleme işlemli için gereken parametre
- timeout parametreleri ise belirlenen süreden fazla sürer ise disconnect işlemi olması için gereken süre ayarıdır.
Programımızı çalıştıracak olan ana classımızı oluşturalım.
@SpringBootApplication public class MailexampleApplication implements CommandLineRunner { @Autowired private MailController mailController; public static void main(String[] args) { SpringApplication.run(MailexampleApplication.class, args); } @Override public void run(String... args) throws Exception { mailController.sendMail(); } }
Programı çalıştırdığımızda mail işleminin gerçekleşmesi için CommandLineRunner implementasyonu kullandık. Implement ettiğimiz run metodunun içerisinde program çalıştığı zaman çalışacak işlemleri yazabiliyoruz. Mail gönderme işleminin programı çalıştırdığımız anda işlemesi için Run motdunun içerisinde çalıştırarak mail gönderme işlemini yazabiliyoruz.
Projenin Kaynak Kodlarını Github Üzerinden Görünlüte
Önceki Ders: application.properties Dosyası Nedir ve Özellikleri | Spring Boot Dersleri | Sonraki Ders: Spring Boot Actuator Nedir? Kullanımı |
No Comment! Be the first one.