Cara sederhana untuk Mengirim Email menggunakan Spring MVC 5.xx Framework – org.springframework.mail. javamail.JavaMailSenderImpl
Diterbitkan: 2018-10-23Ada beberapa artikel yang mungkin telah Anda baca di Crunchify on Spring MVC seperti Pengantar Kerangka MVC Spring, Hello World Spring MVC, Unggah Banyak File menggunakan Spring MVC, dll.
Dalam tutorial ini kita akan membahas bagaimana memanfaatkan perpustakaan org.springframework.mail.javamail.JavaMailSenderImpl
untuk mengirim email menggunakan Spring MVC 5.1.3.RELEASE.
Mari kita mulai:
Berikut adalah struktur tugas akhir. Pastikan untuk membuat file yang sesuai.
Langkah 1
Buat Proyek Maven sederhana CrunchifySpringMVC4SendEmailTutorial
.
- Pilih kotak centang untuk opsi “
Create a simple project (skip archetype selection)
” - Berikan semua informasi yang mirip dengan diagram di bawah ini, yaitu Group Id, Artifact Id, Name dan Description yang akan kita gunakan pada langkah selanjutnya.
Langkah 2
Buka file pom.xml
dan tambahkan 3 dependensi.
- konteks musim semi
- musim semi-konteks-dukungan
- javax.mail
Ini file pom.xml
lengkap saya.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
< 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 > CrunchifySpringMVC4SendEmailTutorial < / groupId > < artifactId > CrunchifySpringMVC4SendEmailTutorial < / artifactId > < version > 0.0.1 - SNAPSHOT < / version > < name > CrunchifySpringMVC4SendEmailTutorial < / name > < description > Best way to send an email using Spring MVC 4.1.6 - Crunchify Tips < / description > < dependencies > < dependency > < groupId > org . springframework < / groupId > < artifactId > spring - context < / artifactId > < version > 5.1.3.RELEASE < / version > < / dependency > < dependency > < groupId > org . springframework < / groupId > < artifactId > spring - context - support < / artifactId > < version > 5.1.3.RELEASE < / version > < / dependency > < dependency > < groupId > javax . mail < / groupId > < artifactId > mail < / artifactId > < version > 1.4.7 < / version > < / dependency > < / dependencies > < / project > |
Langkah-3
Buat file Spring Bean crunchify-bean.xml
di bawah folder src/main/resources
.
Kacang musim semi dikonfigurasi menggunakan pendekatan XML tradisional. Dalam kerangka Spring MVC bean
adalah objek yang instantiated
, assembled
, dan managed
oleh wadah Spring IoC (Inversion of Control).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<? xml version = "1.0" encoding = "UTF-8" ?> < beans xmlns = "http://www.springframework.org/schema/beans" xmlns : util = "http://www.springframework.org/schema/util" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns : context = "http://www.springframework.org/schema/context" xsi : schemaLocation = " http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd" > < ! -- this is your package structure where you create file CrunchifyEmailAPI . java and CrunchifyEmailTest . java -- > < context : component - scan base - package = "crunchify.com.tutorials" / > < ! -- Production implementation of the JavaMailSender interface , supporting both JavaMail MimeMessages and Spring SimpleMailMessages -- > < bean id = "mailSender" class = "org.springframework.mail.javamail.JavaMailSenderImpl" > < property name = "host" value = "smtp.gmail.com" / > < property name = "port" value = "587" / > < property name = "username" value = "<!-- Provide your Gmail ID -->" / > < property name = "password" value = "<!-- Provide your Gmail Password -->" / > < ! -- The name of the property , following JavaBean naming conventions -- > < property name = "javaMailProperties" > < props > < prop key = "mail.transport.protocol" > smtp < / prop > < prop key = "mail.smtp.auth" > true < / prop > < prop key = "mail.smtp.starttls.enable" > true < / prop > < prop key = "mail.debug" > true < / prop > < / props > < / property > < / bean > < / beans > |
Harap pastikan Anda memperbarui nilai bidang username
dan password
dengan nilai nyata/aktual Anda.
Langkah-4
Buat anotasi kelas API CrunchifyEmailAPI.java
dengan @Service
(org.springframework.stereotype.Service) di bawah folder src/main/java
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
package crunchify . com . tutorials ; import org . springframework . beans . factory . annotation . Autowired ; import org . springframework . mail . MailSender ; import org . springframework . mail . SimpleMailMessage ; import org . springframework . stereotype . Service ; /** * @author Crunchify.com * */ @Service ( "crunchifyEmail" ) public class CrunchifyEmailAPI { @Autowired private MailSender crunchifymail ; // MailSender interface defines a strategy // for sending simple mails public void crunchifyReadyToSendEmail ( String toAddress , String fromAddress , String subject , String msgBody ) { SimpleMailMessage crunchifyMsg = new SimpleMailMessage ( ) ; crunchifyMsg . setFrom ( fromAddress ) ; crunchifyMsg . setTo ( toAddress ) ; crunchifyMsg . setSubject ( subject ) ; crunchifyMsg . setText ( msgBody ) ; crunchifymail . send ( crunchifyMsg ) ; } } |
Langkah-5
Buat kelas Uji CrunchifyEmailTest.java
di bawah folder src/main/java
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package crunchify . com . tutorials ; import org . springframework . context . ConfigurableApplicationContext ; import org . springframework . context . support . ClassPathXmlApplicationContext ; /** * @author Crunchify.com * */ public class CrunchifyEmailTest { @SuppressWarnings ( "resource" ) public static void main ( String args [ ] ) { // Spring Bean file you specified in /src/main/resources folder String crunchifyConfFile = "crunchify-bean.xml" ; ConfigurableApplicationContext context = new ClassPathXmlApplicationContext ( crunchifyConfFile ) ; // @Service("crunchifyEmail") <-- same annotation you specified in CrunchifyEmailAPI.java CrunchifyEmailAPI crunchifyEmailAPI = ( CrunchifyEmailAPI ) context . getBean ( "crunchifyEmail" ) ; // email subject String subject = "Hey.. This email sent by Crunchify's Spring MVC Tutorial" ; // email body String body = "There you go.. You got an email.. Let's understand details on how Spring MVC works -- By Crunchify Admin" ; crunchifyEmailAPI . crunchifyReadyToSendEmail ( toAddr , fromAddr , subject , body ) ; } } |
Pastikan Anda memperbarui toAddr
dan dari fromAddr
di atas.

Langkah-6
Sekarang let's run
CrunchifyEmailTest.java dan hasil console
checkout Anda. Juga jangan lupa untuk checkout your Gmail
.
Dari akun Gmail saya:
Keluaran Konsol:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
Jun 22, 2015 8:38:05 PM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5010be6: startup date [Mon Jun 22 20:38:05 CDT 2015]; root of context hierarchy Jun 22, 2015 8:38:06 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO: Loading XML bean definitions from class path resource [crunchify-bean.xml] DEBUG: JavaMail version 1.4.7 DEBUG: successfully loaded resource: /META-INF/javamail.default.providers DEBUG: Tables of loaded providers DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle] DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 587, isSSL false 220 mx.google.com ESMTP gc7sm11710775obb.26 - gsmtp DEBUG SMTP: connected to host "smtp.gmail.com", port: 587 EHLO 192.168.0.3 250-mx.google.com at your service, [25.15.21.112] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 DEBUG SMTP: Found extension "SIZE", arg "35882577" DEBUG SMTP: Found extension "8BITMIME", arg "" DEBUG SMTP: Found extension "STARTTLS", arg "" DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg "" DEBUG SMTP: Found extension "PIPELINING", arg "" DEBUG SMTP: Found extension "CHUNKING", arg "" DEBUG SMTP: Found extension "SMTPUTF8", arg "" STARTTLS 220 2.0.0 Ready to start TLS EHLO 192.161.0.22 250-mx.google.com at your service, [25.15.21.112] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN XOAUTH 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 DEBUG SMTP: Found extension "SIZE", arg "35882577" DEBUG SMTP: Found extension "8BITMIME", arg "" DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN XOAUTH" DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg "" DEBUG SMTP: Found extension "PIPELINING", arg "" DEBUG SMTP: Found extension "CHUNKING", arg "" DEBUG SMTP: Found extension "SMTPUTF8", arg "" DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM DEBUG SMTP: AUTH LOGIN command trace suppressed DEBUG SMTP: AUTH LOGIN succeeded DEBUG SMTP: use8bit false MAIL FROM:<test@crunchify.com> 250 2.1.0 OK gc7sm11710775obb.26 - gsmtp RCPT TO:<test@crunchify.com> 250 2.1.5 OK gc7sm11710775obb.26 - gsmtp DEBUG SMTP: Verified Addresses DEBUG SMTP: test@crunchify.com DATA 354 Go ahead gc7sm11710775obb.26 - gsmtp Date: Mon, 22 Jun 2015 20:38:08 -0500 (CDT) From: test@crunchify.com To: test@crunchify.com Message-ID: <428566321.0.1435023488148.JavaMail.app@LM-AUN-11000370> Subject: Hey.. This email sent by Crunchify's Spring MVC Tutorial MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit There you go.. You got an email.. Let's understand details on how Spring MVC works -- By Crunchify Admin . 250 2.0.0 OK 1435023491 gc7sm11710775obb.26 - gsmtp QUIT 221 2.0.0 closing connection gc7sm11710775obb.26 - gsmtp |