เมื่อผู้ใช้ซื้อผลิตภัณฑ์เราควรส่งอีเมลไปยังผู้ใช้เพื่อบอกเขาว่าคำสั่งซื้อได้ถูกสร้างขึ้นและที่อยู่อีเมลได้มาจากข้อมูลพื้นฐานของผู้ใช้ โอเคก่อนอื่นให้ดูที่วิธีการส่งอีเมลใน Java
1. วิธีการส่งอีเมลใน Java
ก่อนที่จะปรับปรุงโครงการนี้ให้ตรวจสอบก่อนว่าอีเมลจะถูกส่งใน Java อย่างไร ก่อนอื่นคุณต้องส่งอีเมล: mail.jar นำเข้าสู่ไดเรกทอรี LIB โอเคเรามาเขียนโปรแกรม Java ธรรมดาเพื่อตรวจสอบจุดความรู้ของอีเมล Java:
คลาสสาธารณะ sendemaildemo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {// 1 เข้าสู่ระบบไคลเอนต์อีเมล (สร้างเซสชัน) คุณสมบัติ Prop = คุณสมบัติใหม่ (); prop.setProperty ("mail.transport.protocol", "smtp"); // สร้างเซสชันเซสชันเซสชันเซสชันเซสชัน = session.getDefaultInstance (prop); // ตั้งค่าโหมดดีบักเพื่อแก้ไขข้อบกพร่องส่งข้อความเซสชัน SetDebug (จริง); // สร้างข้อความออบเจ็กต์อีเมล = new mimeMessage (เซสชัน); // เขียนข้อความจดหมาย SetsUbject ("ยินดีต้อนรับสู่โฮมเพจบล็อก CSDN ของฉัน!"); // ข้อความเนื้อหาข้อความ SetContent ("ยินดีต้อนรับสู่โฮมเพจบล็อก CSDN ของฉัน: http://blog.csdn.net/eson_15" + ", momoda ~", "text/html; charset = utf-8"); // address address's address.setfrom (InternetAddress ใหม่ ("[email protected]")); Transport Transport = session.getTransport (); // ข้อมูลการรับรองของ Link Mail Server Transport.Connect ("smtp.163.com", "Nishengwus", "รหัสผ่าน xxxxx"); // ตั้งค่าที่อยู่ผู้รับและส่งอีเมล transport.sendMessage (ข้อความ, InternetAddress ใหม่ [] {New InternetAddress ("[email protected]")}); Transport.close (); -ข้างต้นคือกระบวนการส่งอีเมลใน Java: สร้างเซสชัน> ข้อมูลอีเมลห่อหุ้ม> ตั้งที่อยู่ผู้ส่ง> ตั้งที่อยู่ผู้รับ> ส่ง
2. ห่อหุ้มฟังก์ชั่นการส่งอีเมล
หลังจากตรวจสอบวิธีการส่งอีเมลโดย Java แล้วเราจะสรุปกระบวนการนี้ลงในคลาสเครื่องมือสร้างคลาสการใช้งาน EmailUtilImpl ใหม่และแยกออกเป็นอินเตอร์เฟส EmailUtil หลังจากเสร็จสิ้นดังนี้:
// The Emailutil Public Interface EmaliTil {Public Abstract Void Sendemail (String emailaddress, String id);} // emailutilimpl คลาสการใช้งาน @component ("emailutil") คลาสสาธารณะ EmailUtilimpl ใช้ EmailUtil {// // parameters ไคลเอนต์อีเมล (สร้างเซสชัน) คุณสมบัติ Prop = คุณสมบัติใหม่ (); เซสชันเซสชัน = null; ข้อความข้อความ = null; การขนส่งการขนส่ง = null; ลอง {prop.setProperty ("mail.transport.protocol", "smtp"); // สร้างเซสชันเซสชัน = session.getDefaultInstance (prop); // ตั้งค่าโหมดดีบักเพื่อแก้ไขข้อบกพร่องส่งข้อความเซสชัน SetDebug (จริง); // สร้างข้อความวัตถุอีเมล = new mimeMessage (เซสชัน); // เขียนข้อความจดหมาย SetsUbject ("ข้อเสนอแนะการสั่งซื้อห้างสรรพสินค้าออนไลน์"); // ข้อความเนื้อหาข้อความ setContent ("สวัสดีลูกค้ายินดีต้อนรับไปเยี่ยมชมห้างสรรพสินค้าออนไลน์สั่งซื้อ" + id + "ชำระแล้วสำเร็จ!", "ข้อความ/html; charset = utf-8"); // address address address.setfrom (ใหม่ InternetAddress ("[email protected]")); transport = session.getTransport (); // ข้อมูลการรับรองความถูกต้องของ Link Mail Server Transport.connect ("smtp.sina.com", "soft03_test", "soft03_test"); // ตั้งค่าที่อยู่ของผู้รับและส่งการขนส่งทางอีเมล sendMessage (ข้อความ, InternetAddress ใหม่ [] {New InternetAddress (emailaddress)}); } catch (exception e) {e.printstacktrace (); โยน RuntimeException ใหม่ (E); } ในที่สุด {ลอง {transport.close (); } catch (messagingException e) {e.printStackTrace (); โยน RuntimeException ใหม่ (E); -3. ปรับปรุงการจ่ายเงิน
เสร็จสิ้นการห่อหุ้มของคลาสเครื่องมือ ต่อไปเราจะนำคลาสเครื่องมือลงใน baseaction และฉีดผ่านคำอธิบายประกอบ @Resource เพื่อใช้งานโดยการกระทำ ด้านล่างเราจะปรับปรุงวิธี backbank () ในการจ่ายก่อนหน้านี้ดังนี้:
@Controller ("การจ่ายเงิน")@Scope ("Prototype") การจ่ายเงินระดับสาธารณะขยาย baseaction <jobch> ใช้ parameteraware {// ละเว้นรหัสที่ไม่เกี่ยวข้อง ... โมฆะสาธารณะ backbank () {backdata backdata = (backdata) โมเดล; System.out.println (รุ่น); บูลีน isok = payservice.checkbackdata (backdata); if (isok) {// 1 อัปเดตสถานะการสั่งซื้อพารามิเตอร์จะถูกส่งด้วยตัวเองตามสถานการณ์ในฐานข้อมูลและใช้เพื่อทดสอบ ForderService.UpDatestatusById (Integer.ValueOf (201605006), 2); // 2. ส่งอีเมลตามสตริงที่อยู่อีเมลผู้ใช้ emailaddress = backdata.getR8_MP (). แยก (",") [0]; emailutil.sendemail (emailaddress, backdata.getr6_order ()); // 3. ส่งข้อความโทรศัพท์มือถือบล็อกถัดไปแนะนำฟังก์ชั่นของการส่งข้อความส่งข้อความ. println ("--- ความสำเร็จ !! ----"); } else {system.out.println ("---- false !!! -----"); - ในข้อมูลที่ส่งคืนจาก Yibao พารามิเตอร์ R6_ORDER จะบันทึกหมายเลขคำสั่งซื้อและพารามิเตอร์ R8_MP คืออีเมลและหมายเลขโทรศัพท์ของผู้ใช้ ที่อยู่อีเมลแรกคือที่อยู่อีเมลและที่สองคือหมายเลขโทรศัพท์ที่คั่นด้วยเครื่องหมายจุลภาคดังนั้นเราจึงต้องได้รับที่อยู่อีเมลของผู้ใช้ก่อนจากนั้นส่งอีเมล ตกลงฟังก์ชั่นของการส่งอีเมลไปยังผู้ใช้หลังจากการชำระเงินเสร็จสมบูรณ์แล้ว
ลิงค์ดั้งเดิม: http://blog.csdn.net/eson_15/article/details/51475046
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น