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

Type and hit Enter to search

  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
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 yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Chaos Monkey Spring Boot Uygulama Ornegi

Chaos Monkey Nedir? #1 Uygulamanızın Sınırlarını Test Edin

TestContainers Nedir Spring Boot MongoDB Uygulama Örneği

TestContainers ile Spring Boot & MongoDB Test İşlemleri

Spring Boot Dersleri @ConditionalOnExpression Uygulama Ornegi

Spring Boot @ConditionalOnExpression Nedir? Uygulama Örneği

Spring Boot Dersleri Content Negotiation Uygulama Örneği

Spring Boot Content Negotiation XML – JSON Uygulama Örneği

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

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

Link

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

Kategori

Cloud
Node.js
Java 24
Android
Struts
Röportaj
Gradle
Amazon Web Services
Vue.js
Video
Redis
Spring Boot 3.0
Debezium
Mikroservis Mimarisi
Spring Native
Spring Cloud Stream
Etkinlikler
XCode
JPA
Objective C
iPhone Uygulama Geliştirme
PostgreSQL
Spring Security
MongoDB
Java 21
Spring Data
Apache Kafka
Yaptığım Projeler
Servlet
Git
Maven
Design Patterns
DevOps
Linux
Spring Jdbc Template
RabbitMQ
JDBC
PrimeFaces
Manset
Google
Spring
Spring MVC
Spring Cloud
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Java SE
Tanıyalım
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
  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale