Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Quarkus Dersleri
  • Spring Dersleri
    • Spring Cloud
    • Spring Boot
    • Spring Uygulama Örnekleri
    • Spring Core
    • Spring JDBC Template
    • Spring MVC
  • İleri Java Dersleri
    • Java Server Faces
    • Java Server Pages
    • PrimeFaces
    • Servlet
    • JDBC
    • JSTL
    • Java 8
  • Hibernate Dersleri
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
  • Hakkımda
Spring Boot

Spring Boot Email Uygulama Örneği

Paylaş

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ı

 

Tags:

spring boot applicationspring boot derslerispring boot uygulamaspring derslerispring uygulama örneği

Paylaş

Diğer Yazılar

Spring Dersleri
Previous

Spring Boot Dersleri : application.properties Dosyası Nedir ve Özellikleri

blank
Next

Windows Kendiliğinden Kapanma Sorunu ve Çözümü

Next
blank
28 Haziran 2018

Windows Kendiliğinden Kapanma Sorunu ve Çözümü

Previews
19 Haziran 2018

Spring Boot Dersleri : application.properties Dosyası Nedir ve Özellikleri

Spring Dersleri

No Comment! Be the first one.

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Spring Boot Dersleri Rest Template

Spring Boot RestTemplate Nedir ve Kullanımı

blank

Spring Boot Transaction, Isolation, Propagation ve RollBack

blank

Spring Boot Projelerinde Jackson Kullanımı

blank

Spring Boot Bean Validation Uygulama Örneği

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Röportaj
Struts
Android
Vue.js
Node.js
Redis
XCode
Spring Data
Debezium
Mikroservis Mimarisi
Spring Native
Video
Spring Security
Objective C
iPhone Uygulama Geliştirme
JPA
DevOps
PostgreSQL
Apache Kafka
Git
Design Patterns
Yaptığım Projeler
Servlet
Maven
Spring Cloud
Linux
Spring
JDBC
PrimeFaces
Spring Jdbc Template
RabbitMQ
Google
Manset
Spring MVC
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Tanıyalım
Java SE
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github