Spring Boot คืออะไร
Spring Boot เป็นเฟรมเวิร์กที่ออกแบบมาเพื่อทำให้การกำหนดค่าการก่อสร้างเริ่มต้นง่ายขึ้นและกระบวนการพัฒนาของแอปพลิเคชันฤดูใบไม้ผลิ เฟรมเวิร์กนี้ใช้วิธีการกำหนดค่าที่เฉพาะเจาะจงเพื่อให้นักพัฒนาไม่จำเป็นต้องกำหนดการกำหนดค่าหม้อไอน้ำ
ประโยชน์ของการบูตฤดูใบไม้ผลิ
1. การกำหนดค่าอย่างง่าย;
2. การเข้ารหัสง่าย ๆ ;
3. การปรับใช้อย่างง่าย;
4. การตรวจสอบอย่างง่าย;
ภาพรวม
Spring Boot รวมเซิร์ฟเวอร์เมลและการใช้ Spring Boot สามารถส่งอีเมลได้อย่างง่ายดาย เรียงลำดับการส่งอีเมลล่าสุดและข้อควรระวังสำหรับการบูตฤดูใบไม้ผลิ
การพึ่งพาแพ็คเกจ Maven
<การพึ่งพา> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-Mail </artifactid>
การกำหนดค่าสปริงบูต
spring.mail.host = smtp.servie.comspring.mail.username = ชื่อผู้ใช้ // ที่อยู่อีเมลของผู้ส่ง Spring.mail.password = รหัสผ่าน // สำหรับกล่องจดหมาย QQ รหัสผ่านหมายถึงรหัสการอนุญาตของผู้ส่ง Spring.mail.properties.mail.smtp.auth = truespring.mail.mail.mail.mail.mail. ในการเปิดใช้งานการส่งสัญญาณที่เข้ารหัสให้ใช้รายการตรวจสอบโปรโตคอล Spring.mail.properties.mail.smtp.starttls.required = fasle #จะเปิดใช้งานการส่งสัญญาณการเข้ารหัสใช้รายการตรวจสอบโปรโตคอลสปริง
การใช้งานรหัสฤดูใบไม้ผลิ
แพ็คเกจ com.dbgo.webservicedemo.email; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.core.io.filesystemresource; นำเข้า org.springframework.mail.javamail.javamail.jav org.springframework.mail.javamail.mimemessagehelper นำเข้า org.springframework.stereotype.component; นำเข้า Javax.mail.messagingException; นำเข้า Javax.mail.internet.mimessage; Javamailsender Javamailsender; โมฆะสาธารณะ sendSimpleMail () {ข้อความ mimeMessage = null; ลอง {message = javamailsender.createMimeMessage (); MimemessageHelper Helper = ใหม่ mimemessageHelper (ข้อความจริง); helper.setfrom ("[email protected]"); helper.setto ("[email protected]"); helper.setsubject ("ชื่อ: ส่งเนื้อหา HTML"); StringBuffer sb = new StringBuffer (); sb.append ("<h1> ชื่อเรื่องขนาดใหญ่ H1 </h1>") .append ("<p style = 'color:#f00'> คำสีแดง </p>") helper.settext (sb.toString (), จริง); FileSystemResource filesystemResource = ใหม่ filesystemResource (ไฟล์ใหม่ ("d: /76678.pdf")) helper.addattachment ("ใบแจ้งหนี้อิเล็กทรอนิกส์", ระบบ Fileystemresource); Javamailsender.Send (ข้อความ); } catch (messagingException e) {e.printStackTrace (); -ส่งอีเมลภายใต้การบูตที่ไม่ใช่สปริง:
การพึ่งพาแพ็คเกจ Maven
<การพึ่งพา> <การพึ่งพา> <roupId> com.sun.mail </groupId> <ratifactid> javax.mail </artifactid> <cersion> 1.5.2 </version>
ตัวอย่างรหัส Demo1
แพ็คเกจ com.justin.framework.core.utils.email; นำเข้า java.io.file; นำเข้า java.io.fileinputstream; นำเข้า java.io.filenotfoundException นำเข้า Java.io.fileOutputStream; นำเข้า Java.io.ioException; java.util.date; นำเข้า java.util.properties; นำเข้า Javax.activation.datahandler; นำเข้า Javax.activation.datasource; นำเข้า Javax.activative javax.mail.message.recipientType; นำเข้า Javax.mail.message.recipientType; นำเข้า Javax.mail.messagingException; นำเข้า Javax.mail.passwordaThentication; นำเข้า Javax.mail.session; javax.mail.internet.mimebodypart; นำเข้า Javax.mail.internet.mimemessage นำเข้า Javax.mail.internet.mimemultipart นำเข้า Javax.mail.internet.mimeutility; // SMTP Mail Server Private Final String Host = "Mail.tdb.com"; // SMTP Mail Server เริ่มต้นพอร์ตสตริงคงสุดท้ายสุดท้ายของพอร์ต = "25"; // ไม่ว่าจะต้องมีการตรวจสอบความถูกต้องส่วนตัวสตริงคงสุดท้ายสุดท้าย is_auth = "true"; // ว่าจะเปิดใช้งานโหมดดีบั๊ก (เปิดใช้งานโหมดดีบั๊กเพื่อพิมพ์ข้อความตอบกลับของคำถามและคำตอบเมื่อไคลเอนต์และเซิร์ฟเวอร์โต้ตอบ) สตริงคงสุดท้ายส่วนตัว IS_ENABLED_DEBUG_MOD = "จริง"; // ผู้ส่งสตริงคงที่ส่วนตัวจาก = "[email protected]"; // ผู้รับสตริงคงที่ส่วนตัวถึง = "[email protected]"; สตริงคงที่ส่วนตัว sendusername = "[email protected]"; สตริงคงที่ส่วนตัว senduserpwd = "ใหม่*2016"; // เริ่มต้นข้อมูลเซสชันที่เชื่อมต่อกับเซิร์ฟเวอร์เซิร์ฟเวอร์ส่วนตัวคุณสมบัติคงที่อุปกรณ์ประกอบฉาก = null; คงที่ {อุปกรณ์ประกอบฉาก = คุณสมบัติใหม่ (); props.setProperty ("mail.enable", "true"); props.setProperty ("mail.transport.protocol", โปรโตคอล); props.setProperty ("mail.smtp.host", โฮสต์); props.setProperty ("mail.smtp.port", พอร์ต); props.setProperty ("mail.smtp.auth", is_auth); // ขึ้นอยู่กับสถานการณ์ props.setProperty ("mail.debug", is_enabled_debug_mod); } / *** ส่งข้อความข้อความง่าย ๆ* / บูลีนแบบคงที่ sendtextemail (สตริงไป, รหัส int) พ่นข้อยกเว้น {ลอง {// สร้างเซสชันอินสแตนซ์ออบเจ็กต์เซสชันเซสชัน session1 = เซสชัน. getDefaultInstance (อุปกรณ์ประกอบฉาก); // สร้าง messemessage message message message message message = new mimeMessage (session1); // ตั้งค่า message ผู้ส่ง SetFrom (InternetAddress ใหม่ (จาก)); // ตั้งค่าข้อความหัวเรื่องอีเมล SetsUbject ("รหัสตรวจสอบการลงทะเบียนเครื่องยนต์ภายใน")); // ตั้งค่าข้อความผู้รับ SESTRECIPIENT (ผู้รับ TYTYPE.TO, InternetAddress ใหม่ (ถึง)); // ตั้งค่าข้อความเวลาการส่ง SetSentDate (วันที่ใหม่ ()); // ตั้งค่าเนื้อหาข้อความธรรมดาเป็นข้อความอีเมล SETTEXT ("รหัสการตรวจสอบของคุณคือ:"+รหัส+"! รหัสการตรวจสอบนั้นใช้ได้ 10 นาทีโปรดรับอีกครั้งหลังจากหมดอายุ! // บันทึกและสร้างข้อความเนื้อหาอีเมลสุดท้าย savechanges (); // รับอินสแตนซ์การขนส่งวัตถุการขนส่ง = เซสชัน 1.getTransport (); // เปิดการเชื่อมต่อ transport.connect ("Meijiajiang2016", ""); // ส่งวัตถุข้อความไปยังวัตถุการขนส่งและส่งข้อความออกการขนส่ง sendMessage (ข้อความ, message.getAllRecipients ()); // ปิดการเชื่อมต่อ transport.close (); กลับมาจริง; } catch (exception e) {e.printstacktrace (); กลับเท็จ; }} โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {sendhtmlemail ("[email protected]", 8888); } / *** ส่งอีเมล html ง่าย ๆ* / บูลีนคงที่ public sendhtmlemail (สตริงไป, รหัส int) โยนข้อยกเว้น {// สร้างเซสชันอินสแตนซ์ออบเจ็กต์เซสชันเซสชัน session.1 = session.getInstance (อุปกรณ์ประกอบฉากใหม่ myauthenticator ()); // สร้าง messemessage message message message message message = new mimeMessage (session1); // ตั้งค่าข้อความหัวเรื่องอีเมล SetsUbject ("การลงทะเบียนเครื่องยนต์สันดาปภายใน"); // ตั้งค่า message.set.setFrom (InternetAddress ใหม่ (จาก)); // ตั้งค่าส่งข้อความเวลา SetsentDate (วันที่ใหม่ ()); // ตั้งค่าข้อความผู้รับสัญญาณ (ผู้รับ TECONTYPE.TO, InternetAddress.parse (ถึง)); // ตั้งค่าเนื้อหา HTML ไปยังร่างกายอีเมลระบุประเภท MIME เป็นประเภทข้อความ/HTML และระบุการเข้ารหัสอักขระเป็นข้อความ GBK SetContent ("<Div Style = 'Width: 600px; margin: 0 Auto'> <h3 style = 'สี:#003e64; เรียนผู้ใช้: </p> <p style = 'Indentent: 2EM'> คุณกำลังลงทะเบียนบัญชีเครื่องยนต์สันดาปภายใน สังคม </p> </div> "," ข้อความ/html; charset = utf-8 "); // ตั้งค่าสตริงชื่อเล่นผู้ส่งที่กำหนดเอง nick = ""; ลอง {nick = javax.mail.internet.mimeutility.encodetext ("China Internal Interner Engine Society"); } catch (unsupportencodingexception e) {e.printstacktrace (); } message.setFrom (InternetAddress ใหม่ (nick+"<"+จาก+">")); // บันทึกและสร้างข้อความเนื้อหาอีเมลสุดท้าย savechanges (); // ส่งอีเมลลอง {transport.send (ข้อความ); กลับมาจริง; } catch (exception e) {e.printstacktrace (); กลับเท็จ; }} / *** ส่งจดหมาย HTML ด้วยภาพฝังตัว* / โมฆะคงที่สาธารณะ SENDHTMLWithInnerImageEmail () พ่น MessagingException {// สร้างเซสชันอินสแตนซ์เซสชันเซสชันเซสชัน session.getDefaultInstance (อุปกรณ์ประกอบฉากใหม่ myauthenticator ();); // สร้างเนื้อหาอีเมลข้อความ mimeMessage = new mimeMessage (เซสชัน); // mail subject และระบุ message encoding message.setSubject ("HTML Mail พร้อมรูปภาพฝังตัว", "UTF-8"); // ผู้ส่ง message.setFrom (InternetAddress ใหม่ (จาก)); // ผู้รับข้อความ SetRecipients (ผู้รับ TYTYPE.TO, InternetAddress.parse (ถึง)); // cc message.setRecipient (ผู้รับ TECONTYPE.CC, InternetAddress ใหม่ ("[email protected]")); // SECRET SEND (ไม่แสดงในรายการผู้รับอีเมล) ข้อความ SetRecipient (ผู้รับ TECONTYPE.BCC, InternetAddress ใหม่ ("[email protected]")); // ส่งข้อความเวลา SetsentDate (วันที่ใหม่ ()); // สร้างวัตถุ mimemultipart ที่มี mime subtype "เกี่ยวข้อง" mimemultipart mp = new mimemultipart ("เกี่ยวข้อง"); // สร้างวัตถุ mimebodypart ที่เป็นตัวแทนของร่างกายและเพิ่มลงในวัตถุ mimemultipart ที่สร้างขึ้นก่อนหน้า mimebodypart htmlpart = new MimeBodyPart (); mp.addbodypart (htmlpart); // สร้างวัตถุ mimebodypart ที่แสดงถึงทรัพยากรรูปภาพและเพิ่มลงในวัตถุ mimemultipart ที่สร้างขึ้นก่อนหน้า mimebodypart imagepart = new MimeBodyPart (); mp.addbodypart (imagepart); // ตั้งค่าวัตถุ MimemUltipart เป็นเนื้อหาของข้อความทั้งหมดข้อความ SetContent (MP); // ตั้งค่าข้อมูล Mail Image Body DataSource DS = ใหม่ FileDataSource (ไฟล์ใหม่ ("Resource/FirefoxLogo.png")); Datahandler DH = ใหม่ Datahandler (DS); imagepart.setDatahandler (DH); imagepart.setContentId ("firefoxlogo.png"); // ตั้งค่าหมายเลขเนื้อหาที่จะใช้สำหรับการอ้างอิงตัวตนอื่น ๆ // สร้างวัตถุ mimeMultipart ด้วย mime subtype "ทางเลือก" และทำหน้าที่เป็นเนื้อหาอีเมลของวัตถุ HTMLPART ที่สร้างขึ้นก่อนหน้านี้ mimemUltipart htmlmultipart = new mimemultipart ("ทางเลือก"); // สร้างวัตถุ mimebodypart ที่เป็นตัวแทนของ HTML Body MimeBodyPart htmlbodypart = new MimeBodyPart (); // โดยที่ cid = Androidlogo.gif เป็นภาพภายในข้อความอ้างอิงนั่นคือ imagepart.setContentId ("Androidlogo.gif"); วิธีการ htmlbodypart.setContent ("<span style = 'สี: สีแดง;'> นี่คืออีเมล html ที่มีภาพฝังตัว !!! <img src =/" cid: firefoxlogo.png/"/> </span>", "ข้อความ/html; charset = utf-8"); htmlmultipart.addbodypart (htmlbodypart); htmlpart.setContent (htmlmultipart); // บันทึกและสร้างข้อความเนื้อหาอีเมลสุดท้าย savechanges (); // ส่งจดหมายส่งจดหมาย (ข้อความ); } / *** ส่งข้อความ HTML ที่สมบูรณ์พร้อมรูปภาพฝังตัว, ไฟล์แนบ, ผู้รับหลายคน (แสดงชื่อกล่องจดหมาย) ลำดับความสำคัญของอีเมลและการอ่านใบเสร็จรับเงิน* / โมฆะสาธารณะคงที่ SendMultipleemail () โยนข้อยกเว้น {String Charset = "UTF-8"; // ระบุรูปแบบการเข้ารหัสภาษาจีน // สร้างเซสชันอินสแตนซ์ออบเจ็กต์เซสชันเซสชัน session = session.getInstance (อุปกรณ์ประกอบฉาก, myauthenticator ใหม่ ()); // สร้าง messemessage อินสแตนซ์ messemessage message message = new mimeMessage (เซสชัน); // ตั้งค่าข้อความหัวข้อ SetsUbject ("ใช้ Javamail เพื่อส่งการทดสอบจดหมายผสมผสม"); // ตั้งค่าข้อความผู้ส่ง SetFrom (InternetAddress ใหม่ (จาก, "อีเมลทดสอบ SINA", Charset)); // set message receient.setRecipients (ผู้รับ TECONTYPE.TO, ที่อยู่ใหม่ [] {// พารามิเตอร์ 1: ที่อยู่อีเมล, พารามิเตอร์ 2: ชื่อ (เฉพาะชื่อที่แสดงในไคลเอนต์ที่ได้รับไม่ใช่ที่อยู่อีเมล) พารามิเตอร์ 3: ชื่อสตริงจีนที่เข้ารหัสใหม่ InternetAddress ("[email protected]", "Li Si_163", charset),}); // ตั้งค่า CC message.setRecipient (ผู้รับ TECONTYPE.CC, InternetAddress ใหม่ ("[email protected]", "wang wu_gmail", charset)); // ตั้งค่า Secret Message.setRecipient (acceientType.bcc, InternetAddress ใหม่ ("[email protected]", "zhao liu_qq", charset)); // ตั้งค่าส่งข้อความเวลา SetsentDate (วันที่ใหม่ ()); // ตั้งค่า Replyer (ผู้รับเริ่มต้นจะได้รับเมื่อผู้รับตอบกลับอีเมลนี้) ข้อความ SetReplyTo (internetaddress.parse ("/" " + mimeutility.encodetext (" tian qi ") +"/"<[email protected]>"); // ตั้งค่าลำดับความสำคัญ (1: ฉุกเฉิน 3: ปกติ 5: ต่ำ) ข้อความ Setheader ("X-Priority", "1"); // ขอใบเสร็จรับเงินการอ่าน (ผู้รับจะแจ้งให้ผู้ส่งตอบกลับเมื่ออ่านอีเมลซึ่งระบุว่าได้รับอีเมลและอ่านแล้ว) ข้อความ Setheader ("การแจ้งเตือน-การแจ้งเตือนถึง" จาก); // สร้างวัตถุ mimemultipart ที่มี mime subtype "Mixed" ซึ่งบ่งชี้ว่านี่เป็นอีเมลผสมแบบผสม MIMEMULTIPART MAILCONTENT = MIMEMULTIPART ใหม่ ("ผสม"); message.setContent (MailContent); // Attachment mimebodypart attach1 = new mimebodypart (); mimebodypart attach2 = new mimebodypart (); // เนื้อหา mimebodypart mailbody = new mimebodypart (); // เพิ่มไฟล์แนบและเนื้อหาลงใน Mail MailContent.addbodyPart (แนบ 1); mailcontent.addbodypart (แนบ 2); mailcontent.addbodypart (mailbody); // เอกสารแนบ 1 (ใช้ JAF Framework เพื่อสร้าง Body Mail) DataSource DS1 = ใหม่ FileDataSource ("Resource/Earth.bmp"); Datahandler DH1 = ใหม่ Datahandler (DS1); แนบ 1.SetFilename (mimeutility.encodetext ("Earth.bmp")); attach1.SetDatahandler (DH1); // Attachment 2 DataSource DS2 = New FileDataSource ("ทรัพยากร/วิธีการเรียนรู้ภาษา C well.txt"); Datahandler DH2 = ใหม่ Datahandler (DS2); Attach2.SetDatahandler (DH2); แนบ 2.setFilename (mimeutility.encodeText ("วิธีการเรียนรู้ภาษา c well.txt")); // body อีเมล (ภาพฝังตัว + ข้อความ html) mimemultipart body = new mimeMultipart ("เกี่ยวข้อง"); // body body ยังเป็นการรวมกันและความสัมพันธ์แบบผสมผสานจะต้องระบุ mailbody.setContent (ร่างกาย); // body email ประกอบด้วย html และ pictures mimebodypart imgpart = mimebodypart ใหม่ (); mimebodypart htmlpart = new mimebodypart (); body.addbodypart (imgpart); body.addbodypart (htmlpart); // ข้อมูลภาพข้อมูล DataSource DS3 = ใหม่ FileDataSource ("Resource/FirefoxLogo.png"); Datahandler DH3 = ใหม่ Datahandler (DS3); imgpart.setDatahandler (DH3); imgpart.setContentId ("firefoxlogo.png"); // html อีเมลเนื้อหา mimeMultipart htmlmultipart = ใหม่ mimemultipart ("ทางเลือก"); htmlpart.setContent (htmlmultipart); mimebodypart htmlcontent = new mimebodypart (); htmlcontent.setContent ("<span style = 'สี: สีแดง'> นี่คืออีเมลที่ฉันส่งด้วย Java Mail ด้วยตัวเอง!" + "<img src = 'cid: firefoxlogo.png'/> </span>", "html; charset = gbk"); htmlmultipart.addbodypart (htmlcontent); // บันทึกเนื้อหาข้อความและแก้ไข message.savechanges (); /*ไฟล์ emml = buildemlfile (ข้อความ); SendMailforeml (EML);*// // ส่งการขนส่งทางไปรษณีย์ SEND (ข้อความ); }/*** สร้างไฟล์ EML ไปยังเนื้อหาอีเมล* @param ข้อความอีเมลเนื้อหาอีเมล*/ไฟล์คงที่ไฟล์คงที่ filemlfile (ข้อความข้อความ) พ่น MessagingException, filenotfoundException, ioException {ไฟล์ไฟล์ = ไฟล์ใหม่ ("c: //" message.writeto (ใหม่ fileOutputStream (ไฟล์)); ส่งคืนไฟล์; } / *** ส่งไฟล์อีเมลที่สร้างขึ้นในเครื่อง* / โมฆะคงที่สาธารณะ sendMailForeml (ไฟล์ emml) โยนข้อยกเว้น {// รับอีเมลเซสชันเซสชัน = เซสชัน Session.getInstance (อุปกรณ์ประกอบฉากใหม่ myauthenticator ()); // รับเนื้อหาอีเมลนั่นคือไฟล์ EML ที่สร้างขึ้นก่อนที่จะเกิดขึ้นอินพุตคือ = ใหม่ FileInputStream (EML); ข้อความ mimeMessage = mememessage ใหม่ (เซสชัน, IS); // ส่งอีเมล transport.send (ข้อความ); } / *** ส่งข้อมูลการรับรองความถูกต้องไปยังเซิร์ฟเวอร์เมล* / คลาสคงที่ myauthenticator ขยาย Authenticator {Private String username = ""; รหัสผ่านสตริงส่วนตัว = ""; สาธารณะ myauthenticator () {super (); this.password = senduserpwd; this.username = sendusername; } สาธารณะ myauthenticator (ชื่อผู้ใช้สตริง, รหัสผ่านสตริง) {super (); this.username = ชื่อผู้ใช้; this.password = รหัสผ่าน; } @Override PreventAtaITHENTICATION GETPASSWORDAUTHENTICATION () {ส่งคืนรหัสผ่านใหม่ (ชื่อผู้ใช้รหัสผ่าน); -
ตัวอย่างรหัส Demo2:
แพ็คเกจ com.justin.framework.core.utils.email; นำเข้า java.util.hashset; นำเข้า java.util.properties; นำเข้า java.util.set; นำเข้า Javax.Activative javax.mail.message; นำเข้า Javax.mail.multipart; นำเข้า Javax.mail.session; นำเข้า Javax.mail.transport; นำเข้า Javax.mail.internet.internetaddress; นำเข้า Javax.mail.internet.mimebodypart; javax.mail.internet.mimemultipart; นำเข้า Javax.mail.internet.mimeutility; MailManagerUtils ชั้นเรียนสาธารณะ {// ส่งอีเมลบูลีนคงที่สาธารณะ sendmail (อีเมลอีเมล) {String subject = email.getSubject (); เนื้อหาสตริง = email.getContent (); String [] recruits = email.getRecievers (); String [] Copyright = email.getCopyto (); สตริง attbody = email.getattbody (); String [] AttBodys = email.getAttBodys (); if (recievers == null || collecters.length <= 0) {return false; } ลอง {properties props = คุณสมบัติใหม่ (); props.setProperty ("mail.enable", "true"); props.setProperty ("mail.protocal", "smtp"); props.setProperty ("mail.smtp.auth", "true"); props.setProperty ("mail.user", "[email protected]"); props.setProperty ("mail.pass", "ใหม่ ***"); props.setProperty ("mail.smtp.host", "mail.tdb.com"); props.setProperty ("mail.smtp.from", "[email protected]"); props.setProperty ("mail.smtp.fromname", "tdbvc"); // สร้างโปรแกรมเพื่อสื่อสารกับเซิร์ฟเวอร์ Mail Session MailConnection = Session.getInstance (อุปกรณ์ประกอบฉาก, NULL); ข้อความ msg = mimeSessage ใหม่ (MailConnection); // ตั้งค่าผู้ส่งและที่อยู่ผู้รับ = new InternetAddress (props.getProperty ("mail.smtp.from")); // ผู้รับหลายคน msg.setfrom (ผู้ส่ง); ตั้งค่า <netteraddress> touserset = new hashset <internetaddress> (); // การตรวจสอบความถูกต้องของกล่องจดหมายสำหรับ (int i = 0; i <recevers.length; i ++) {ถ้า (recievers [i] .trim (). จับคู่ ("^// w+([-+.] // w+)*@// w+(-.] // w+)+$") }} msg.setRecipients (message.recipientType.to, touserset.toarray (InternetAddress ใหม่ [0])); // ตั้งค่า cc if (copyto! = null) {set <ternetaddress> copytouserset = new hashset <internetaddress> (); // ความถูกต้องของอีเมลถูกต้องสำหรับ (int i = 0; i <copyto.length; i ++) {ถ้า (copyto [i] .trim (). จับคู่ ("^// w+([-+.] // w+)*@// w+(-.] // w+)+$") }} // msg.setRecipients (message.recipientType.cc, (ที่อยู่ []) internetaddress.parse (copyto)); msg.setRecipients (message.recipientType.cc, CopytouserSet.toArray (InternetAddress ใหม่ [0])); } // ตั้งค่าอีเมลหัวเรื่อง msg.setsubject (mimeutility.encodetext (หัวเรื่อง, "UTF-8", "B")); // ปัญหารหัสภาษาจีนที่อ่านไม่ออก // ตั้งค่าเนื้อหาอีเมล bodypart messageBodyPart = ใหม่ mimebodypart (); MessageBodyPart.SetContent (เนื้อหา "ข้อความ/html; charset = utf-8"); // multipart multipart ภาษาจีน = new mimemultipart (); multipart.addbodypart (MessageBodyPart); msg.setContent (multipart); / *************************************/ ถ้า (attbody! = null) {string [] filepath = attbody.split (";"); สำหรับ (String FilePath: FilePath) {// ตั้งค่าไฟล์แนบของตัวอักษร (ใช้ไฟล์บนเครื่องท้องถิ่นเป็นไฟล์แนบ) BodyPart MDP = ใหม่ mimeBodyPart (); FileDataSource FDS = ใหม่ FileDataSource (FilePath); Datahandler DH = ใหม่ Datahandler (FDS); mdp.setFilename (mimeutility.encodetext (fds.getName ())); MDP.SetDatahandler (DH); multipart.addbodypart (MDP); } // ใส่ MTP เป็นเนื้อหาของวัตถุข้อความ msg.setContent (multipart); - if (attbodys! = null) {สำหรับ (String filepath: AttBodys) {// ตั้งค่าตัวอักษร (ใช้ไฟล์บนเครื่องท้องถิ่นเป็นไฟล์แนบ) BodyPart MDP = new MimeBodyPart (); FileDataSource FDS = ใหม่ FileDataSource (FilePath); Datahandler DH = ใหม่ Datahandler (FDS); mdp.setFilename (mimeutility.encodetext (fds.getName ())); MDP.SetDatahandler (DH); multipart.addbodypart (MDP); } // ใส่ MTP เป็นเนื้อหาของวัตถุข้อความ msg.setContent (multipart); - /***************************************************** // // การจัดเก็บอีเมลครั้งแรก msg.savechanges (); System.out.println ("อีเมลกำลังถูกส่ง ...... "); Transport Transfer = MailConnection.getTransport (props.getProperty ("mail.protocal")); // ชื่อเซิร์ฟเวอร์เมลชื่อผู้ใช้รหัสผ่าน trans.connect (props.getProperty ("mail.smtp.host"), props.getProperty ("mail.user"), props.getProperty ("mail.pass")); trans.sendmessage (msg, msg.getallrecipients ()); System.out.println ("ส่งจดหมายสำเร็จ!"); // ปิดช่องถ้า (trans.isconnected ()) {trans.close (); } return true; } catch (exception e) {system.err.println ("การส่งอีเมลล้มเหลว!" + e); กลับเท็จ; } ในที่สุด {}} // ผู้ส่งผู้รับและผู้ตอบกลับมีรหัสภาษาจีนที่อ่านไม่ออกในอีเมล Res เป็นที่อยู่ที่ได้รับ // วิธีการเข้ารหัสเริ่มต้นของ http คือ iso8859_1 // สำหรับการส่งที่อยู่ที่มีภาษาจีน getchinesefrom (สตริง res) {สตริงจาก = res; ลอง {ถ้า (from.startswith ("=? gb") || from.startswith ("=? gb") || from.startswith ("=? utf")) {จาก = mimeutility.decodetext (จาก); } else {จาก = สตริงใหม่ (จาก. getBytes ("iso8859_1"), "gbk"); }} catch (exception e) {e.printstacktrace (); } กลับจาก; } // แปลงเป็น gbk การเข้ารหัสสตริงคงที่สาธารณะ tochinese (สตริง strvalue) {ลอง {ถ้า (strvalue == null) ส่งคืน null; อื่น {strvalue = สตริงใหม่ (strvalue.getBytes ("iso8859_1"), "gbk"); กลับ strvalue; }} catch (exception e) {return null; }} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {อีเมลอีเมล = ใหม่อีเมล (); email.setRecievers (สตริงใหม่ [] {"[email protected]"}); email.setSubject ("ทดสอบทดสอบ"); email.setContent ("ทดสอบทดสอบ"); Sendmail (อีเมล); -สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com