SMTP Gmail ใช้งานไม่ได้ [google policy update 2022]?

ตามหัวข้อเลยครับ จากที่เจอมาคือ ในช่วงปี 2022 ทาง google ได้มีการ เปลี่ยน policy เกี่ยวกับการใช้งาน smtp Less Secure Apps feature on some Google accounts from May 30th, 2022 ซึ่งส่งผลให้ หน่วยงานหรือโครงการที่ใช้ smtp Gmail ไม่สามารถใช้งานได้ หากยังไม่ได้ทำการ อัพเดตตามเงื่อนไขใหม่ (เมลบริษัท ที่เป้นของ Gmail ยังไม่พบปัญหา) วิธีการแก้ปัญหามีดังนี้ แก้ไขประมาณนี้ ก็จะสามารถ ส่งเมลได้เป็นปรกติแล้วครับ

pitthaya.d

August 30, 2022

Java F.A.Q

แก้ปัญหา Send mail error java.lang.RuntimeException: javax.mail.MessagingException: Could not convert socket to TLS;nested exception is:javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)at com.zti.dld.email.SendMailUtils.send(SendMailUtils.java:146) เพิ่ม propertiesprops.put(“mail.smtp.ssl.protocols”, “TLSv1.2”); Credit Big คนโสด

Teerakorn Bounoy

November 8, 2021

SpringBoot – Thymeleaf: Tips

Hot reload, add follow config in application.properties spring.thymeleaf.cache=false spring.thymeleaf.prefix=file:src/main/resources/templates/ spring.web.resources.static-locations=file:src/main/resources/static/ spring.thymeleaf.cache.period=0 ** ตอน deploy ขึ้น Server ต้อง comment 3 บรรทัดนี้ หรือไป config ใน Jenkins 2. Enable browser cache spring.web.resources.cache.cachecontrol.max-age=1d

Teerakorn Bounoy

October 29, 2021

จัด UI Layout กับ Thymeleaf

จัด Layout ด้วย Thymeleaf-layout-dialect ถ้าใครเคยเรียน Design Pattern มาสิ่งที่ thymeleaf ทำ คือ View แต่ละอันทำหน้าที่ของตัวเองพอ แสดง Content ในส่วนที่รับผิดชอบ ส่วนการจัดการพวกเมนู และอื่นๆ จะถูกเพิ่มความสามารถ(Declorate) เข้าไปจากตัว Layout ครับ ตัว Design Pattern ที่ผมหมายถึง คือ Decorator pattern ครับ มาดูโจทย์กันก่อน เว็บปกติจะมีจุดที่มันมี Code ซ้ำ จะ Reuse ยังไง ผมแยก 2 ส่วนนะครับ Header, Content และเพิ่ม Footer ตามรูปครับ สิ่งที่ต้องมี Spring Boot+Thymeleaf project ตรวจสอบ Dependency ให้ดีต้องมี thymeleaf <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> thymeleaf-layout-dialect […]

Prajak B

July 14, 2020

Thymeleaf – Spring Boot

หลายๆคนอาจจะรู้สึกว่าการพัฒนาเว็บโดยใช้ Java เนี่ยยุ่งยากนอกจากจะต้องรู้ภาษา Java แล้วยังต้องใช้ JSP(JavaServer Page) ในการพัฒนาหน้าเว็บอีกซึ่งมันก็มี Tag ที่วุ่นวาย ดังนั้นทีมพัฒนาก็เลยสร้าง Library ที่เรียกว่า “Thymeleaf” ขึ้นมา Thymeleaf คืออะไร? Thymeleaf ก็คือ “Template Engine” ตัวนึงที่ทำงานร่วมกับ Spring ได้ดี โดยการเพิ่ม Tag พิเศษของมันเข้าไปใน HTML tag ถ้าเราไม่ได้รันผ่านตัว Thymeleaf ก็จะเห็นเป็นหน้า HTML ธรรมดา เตรียมความพร้อม สิ่งที่ต้องการ Java 8 IDE ที่ถนัดสักตัว (เช่น Eclipse, Netbean, IntelliJ) เริ่มสร้าง Spring Boot Project สำหรับการสร้าง Spring Boot จะมีเครื่องมือที่ชื่อ “SPRING INITIALIZR” เป็นตัวอำนวยความสะดวกให้ […]

Prajak B

July 14, 2020

Lombok

Lombok เป็นหนึ่งในเครื่องมือสำคัญและเป็นที่นิยมของชาว Java ทั้งหลาย เพราะจะมาช่วยสร้าง boilerplate code ให้จะทำให้โค้ดเราดูสั้นอ่านง่ายมากขึ้น และทำให้เขียนโปรแกรมได้เร็วมากขึ้น Lombok จะสร้าง boilerplate code ตอนเวลา compile Install Lombok สามารถใช้ dependency management ทั้ง Maven และ Gradle ดังตัวอย่าง pom.xml ของ Maven ด้านล่าง @Getter/Setter การเขียนโปรแกรมแบบ OOP เราจะต้อง encapsulate field ของ class เอาไว้จำกัดการเข้าถึงจากภายนอก ดังนั้นจะต้องมี Getter/Setter เพื่อใช้ในการเข้าถึงหรือมีเงื่อนไขในการตั้งค่า จะทำให้โค้ดส่วนนี้มีมากแปรผันตรงกับจำนวนของ field แต่ Lombok มี annotation ที่มาช่วยให้เราสร้าง Getter/Setter ให้ด้วย @Getter และ @Setter จะเห็นได้ว่าจะลดโค้ดส่วนของ Getter/Setter […]

Prajak B

March 24, 2020

[Spring Boot] การเชื่อมต่อ database ด้วย Spring data JPA

JPA คืออะไร ก่อนอื่นก็ต้องมาพูดถึงไอ่เจ้าตัว JPA ก่อนเลยว่ามันคืออะไร มีไว้ทำอะไร JPA เป็นมาตรฐานหรือแนวทางในการทำ ORM (Object Relational Mapping) เช่น เคยเห็นพวก class java ของเราใช่มะ คือ JPA อ่ะ จะเป็นตัวบอกว่าเราจะต้องทำยังไงบ้างเพื่อที่จะเชื่อมต่อ java class ให้ไปเป็น table หรือ column ที่อยู่ใน database ของเรา โดยส่วนใหญ่ใน spring เนี่ย มันจะมีสิ่งที่เรียกว่า Hibernate ให้ใช้อยู่ และ Hibernate ได้ทำการ implement ตาม JPA ไว้เรียบร้อยแล้ว การดำเนินการเชื่อมต่อข้อมูลกับ database เพิ่ม JPA module ไว้ในโปรเจคของเราก่อน โดยการใส่โค้ดด้านล่างไว้ใน pom.xml ของโปรเจคภายใต้ tag <dependencies> 2. […]

Prajak B

March 24, 2020

[Spring Boot] การวางโครงสร้าง Project

โครงสร้างโปรเจ็คแบบ MVC+S โครงสร้างโปรเจคและการวาง package จะไม่ตายตัวขึ้นอยู่กับการใช้งานแต่ส่วนใหญ่ที่ใช้กันจะเป็นแบ่งหลักๆ ตาม concept ของ MVC+S ได้ดังภาพ package Controller เก็บ class Controller (@Controller) สำหรับส่วนที่ทำหน้าที่เป็นสมองส่วนกลาง ประสานข้อมูลระหว่าง Model Service และ View คือ รับ input มาจาก user แล้วก็ตัดสินใจ หรือ ประมวลผลว่า จะทำอะไรยังไงต่อ จากนั้นส่งค่า output กลับไปให้ user package Entity หรือ Model เก็บ class โครงสร้างข้อมูลตาม schema (@Entity) คือ ส่วนที่ทำหน้าที่เป็นรูปร่างลักษณะข้อมูลของเราว่าจะมีหน้าตาเป็นยังไงมีฟิลด์อะไรบ้าง package Repository เก็บ class Repository (@Repository) คือ ส่วนที่เชื่อมต่อ Database […]

Prajak B

March 23, 2020

ทำ Date Format ให้เป็นเรื่องง่าย

[siteorigin_widget class=”SiteOrigin_Widget_Hero_Widget”][/siteorigin_widget] [siteorigin_widget class=”SiteOrigin_Widget_Headline_Widget”][/siteorigin_widget] [siteorigin_widget class=”SiteOrigin_Widget_Hero_Widget”][/siteorigin_widget] [siteorigin_widget class=”SiteOrigin_Widget_Headline_Widget”][/siteorigin_widget] [siteorigin_widget class=”SiteOrigin_Widget_PostCarousel_Widget”][/siteorigin_widget] [siteorigin_widget class=”SiteOrigin_Widget_Headline_Widget”][/siteorigin_widget] [siteorigin_widget class=”SiteOrigin_Widgets_ContactForm_Widget”][/siteorigin_widget]

pitthaya.d

March 19, 2020

[Spring Boot] สร้างโปรเจ็คเบื้องต้นบน IntelliJ IDEA

การสร้าง Spring Boot Project เปิดโปรแกม IntelliJ ไปที่เมนู File > Project… หรือ ในหน้า Welcome ของ IntelliJ เลือก + Create New Project เลือก Spring Initializer ตรวจสอบหรือปรับแก้ Project SDK แล้วกด Next  รอโหลดสักครู่ จากนั้นกรอกข้อมูล Project Metadata แล้วกด Next Group: เป็นชื่อโดเมนที่เกี่ยวข้องกับโปรเจ็ค Artifact: เป็นชื่อโมดูลหรือโปรเจ็ค Packaging: เลือกเป็น war Description: กำหนดรายละเอียดคำอธิบายโปรเจ็ค (Optional) เลือก Dependencies ที่ต้องการใช้งาน แล้วกด Next Spring Boot : เลือก version ที่ต้องการ […]

Prajak B

March 13, 2020