ส่งอีเมลง่าย ๆ ตาม SMTP
ขั้นแรกจำเป็นต้องมีการรับรองความถูกต้อง:
แพ็คเกจข้อความที่ใช้ NO001_SMTP นำเข้า Javax.mail.authenticator; นำเข้า Javax.mail.passwordauthentication; คลาสสาธารณะ SimpleAuthenticator ขยาย Authenticator {ชื่อผู้ใช้สตริงส่วนตัวรหัสรหัสผ่านส่วนตัว; PasswordAuthentication (ชื่อผู้ใช้รหัสผ่าน);}} จากนั้นเขียนโปรแกรมส่งอีเมลง่าย ๆ :
Package NO001_ ข้อความข้อความที่ใช้ SMTP; นำเข้า java.util.properties; นำเข้า Javax.mail.message นำเข้า Javax.mail.message; นำเข้า Javax.mail.messagingException; นำเข้า Javax.mail.session; นำเข้า Javax.mail.Transport; javax.mail.internet.mimeMessage; คลาสสาธารณะ smtpsimplemail {โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่นที่อยู่, messagingException {/* ข้อมูลที่จำเป็น*/สตริง smtp_mail_host = "smtp.163.com"; // ที่อยู่เซิร์ฟเวอร์อีเมลนี้ไปที่อีเมลเพื่อสอบถามสตริง email_username = "[email protected]"; String email_password = "myPassword"; String to_email_address = "[email protected]" ข้อมูลเซิร์ฟเวอร์*/คุณสมบัติใหม่ smtp_mail_host); props.put ("mail.smtp.auth", "true");/* สร้างเซสชัน*/เซสชัน session = session.getDefaultInstance (อุปกรณ์ประกอบฉากใหม่ SimpleAuthenticator (email_username, email_password)); InternetAddress (email_username)); message.addrecipient (message.recipientType.to, InternetAddress ใหม่ (to_email_address)); message.setsubject ("วิธีการใช้ Java Mail เพื่อส่งอีเมล (ชื่อ) (001)"); Transport.send (ข้อความ); System.out.println ("มันไม่โชคร้ายเป็นพิเศษคุณสามารถตรวจสอบอีเมล");}} ฉันควรทำอย่างไรถ้าฉันส่งผู้รับ CCS, Secret CCS ต่าง ๆ
Authenticator ถูกนำมาใช้แล้ว
ในความเป็นจริงมันคือการตั้งค่าเพิ่มผู้รับหลายคนผู้ส่ง CC และผู้ส่ง CC ลับ:
แพ็คเกจ NO002_ ฉันควรทำอย่างไรถ้าผู้ส่งและผู้รับหลายรายส่ง CC ไปยัง CC; นำเข้า java.io.unsupportencodingexception; นำเข้า java.util.properties นำเข้า Javax.mail.address; นำเข้า Javax.mail.message นำเข้า Javax.mail.message นำเข้า Javax.mail.session; javax.mail.internet.internetaddress; นำเข้า javax.mail.internet.mimemessage; คลาสสาธารณะ sendmailwithmultipeople {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยน addressexception, messagingexception, unsupportencodexception // ที่อยู่เซิร์ฟเวอร์อีเมลนี้ไปที่อีเมลที่เป็นของสตริงการค้นหา email_username = "[email protected]"; String email_password = "myPassword"; String to_email_address_1 = "[email protected]"; String cc_email_address_1 = "ตัวอย่าง ข้อมูล*/คุณสมบัติ props = คุณสมบัติใหม่ (); props.put ("mail.smtp.host", smtp_mail_host); props.put ("mail.smtp.auth", "true");/*สร้างเซสชัน*/เซสชัน session.getDefaultInstance senderArray = ที่อยู่ใหม่ [1]; senderArray [0] = new InternetAddress ("[email protected]", "nick huang");/* ข้อความอีเมล*/ข้อความ mimemessage = mimessage ใหม่ (เซสชัน); message.addfrom (senderarray); message.addrecipient message.addrecipient (message.recipientType.to, InternetAddress ใหม่ (CC_EMAIL_ADDRESS_1)); message.addrecipient (message.recipienttype.cc, InternetAddress ใหม่ (CC_EMAIL_ADDRESS_1)); message.addrecipient (message.recipienttype.cc, InternetAddress ใหม่ (to_email_address_1)); message.addrecipient (message.recipienttype.bcc, InternetAddress ใหม่ (bcc_email_address_1)); Message.setSubject ("ฉันเป็นจดหมายการเรียนรู้ทางไปรษณีย์ Java Mail"); message.settext ("ฉันเป็นจดหมายการเรียนรู้ทางไปรษณีย์ Java Mail โปรดแจ้งให้ฉันทราบได้ดี"); // ส่ง transport.send (ข้อความ); system.out.println ("ไม่โชคร้ายเป็นพิเศษคุณสามารถตรวจสอบอีเมล");}}} จะทำอย่างไรถ้าคุณส่งไฟล์แนบ
Authenticator ถูกนำมาใช้แล้ว
ส่งการสาธิตสิ่งที่แนบมา:
แพ็คเกจ NO003_ จะทำอย่างไรถ้าคุณส่งไฟล์แนบ นำเข้า java.io.file; นำเข้า java.io.unsupportencodingexception; นำเข้า java.util.properties; นำเข้า Javax.activation.datahandler นำเข้า Javax.activative javax.mail.message; นำเข้า javax.mail.messagingException; นำเข้า Javax.mail.multipart; นำเข้า Javax.mail.session; นำเข้า Javax.mail.transport; นำเข้า Javax.mail.internet.addressexception; javax.mail.internet.mimemessage; นำเข้า javax.mail.internet.mimeMuLtipart; คลาสสาธารณะ sendmailwithattachment {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยน addressexception, messagingexception, unsupportencodexception {/* ข้อมูลที่จำเป็น // ที่อยู่เซิร์ฟเวอร์อีเมลนี้ไปที่อีเมลเพื่อสอบถามสตริง email_username = "[email protected]"; String email_password = "รหัสผ่าน"; สตริง to_email_address_1 = "[email protected]"/* ข้อมูลเซิร์ฟเวอร์*/คุณสมบัติ smtp_mail_host); props.put ("mail.smtp.auth", "true");/* สร้างเซสชัน*/เซสชัน = session.getDefaultInstance (อุปกรณ์ประกอบฉากใหม่ simpleauthenticator (email_username, email_password));/*/ที่อยู่ ข้อความอีเมล*/mimeMessage ข้อความ = new mimeMessage (เซสชัน); message.addfrom (senderArray); message.addrecipient (message.recipientType.to, internetaddress ใหม่ (to_email_address_1) mimebodypart (); bodypart.settext ("นี่คือเนื้อหาของอีเมลการเรียนรู้อีเมล java อีเมลโปรดให้เงินเป็นจำนวนมาก");/* ไฟล์แนบ*/bodypart attachmentpart1 = mimebodypart ใหม่ () แหล่งข้อมูล = ไฟล์ใหม่ Datahandler (แหล่งที่มา)); attachmentPart1.SetFilename ("=? gbk? b?" + ใหม่ sun.misc.base64encoder (). เข้ารหัส ("ไฟล์ 1.txt" .getBytes ()) + "? ="); 2.txt ")); attachmentpart2.setDatahandler (ใหม่ datahandler (แหล่งที่มา)); attachmentpart2.setfilename (" =? gbk? b? " mimemultipart (); multipart.addbodypart (bodypart); multipart.addbodypart (attachmentpart1); multipart.addbodypart (attachmentpart2); message.setcontent (multipart); // ส่งการขนส่ง send (ข้อความ); นอกจากนี้ส่ง HTML Mail
Authenticator ถูกนำมาใช้แล้ว
ในความเป็นจริงมันคือการบอกลูกค้าผู้รับที่จะแยกวิเคราะห์และแสดงผลด้วย HTML:
แพ็คเกจ NO004_SEND HTML Mail; นำเข้า java.io.unsupportencodingexception; นำเข้า java.util.properties นำเข้า Javax.mail.address; นำเข้า Javax.mail.message นำเข้า Javax.mail.messagingException; นำเข้า Javax.mail.multipart; javax.mail.internet.addressexception; นำเข้า Javax.mail.internet.internetaddress; นำเข้า Javax.mail.internet.mimebodypart; นำเข้า Javax.mail.internet.mimemessage; นำเข้า Javax.mail.internet.mimememultipart โยน addressException, MessagingException, unsupportencodingException {/* ข้อมูลที่จำเป็น*/สตริง smtp_mail_host = "smtp.163.com"; // ที่อยู่ Mail Server นี้ไปที่อีเมลที่คุณอยู่ในการค้นหาสตริง email_username = "[email protected]"; String email_password = "รหัสผ่าน"; สตริง to_email_address_1 = "[email protected]";/* ข้อมูลเซิร์ฟเวอร์*/คุณสมบัติใหม่ smtp_mail_host); props.put ("mail.smtp.auth", "true");/* สร้างเซสชัน*/เซสชัน = session.getDefaultInstance (อุปกรณ์ประกอบฉากใหม่ simpleauthenticator (email_username, email_password));/*/ที่อยู่ ข้อความอีเมล*/mimemessage ข้อความ = new mimeMessage (เซสชัน); message.addfrom (senderarray); message.addrecipient (message.recipienttype.to, InternetAddress ใหม่ (to_email_address_1)); message.setsubject ( mimebodypart (); bodypart.setContent ("<h1> รักคุณ ... </h2>", "ข้อความ/html; charset = gb2312");/* ห่อหุ้มข้อมูลของส่วนต่าง ๆ ของอีเมล*/multipart multipart = new MimeMultipart (); Transport.send (ข้อความ); System.out.println ("มันไม่โชคร้ายเป็นพิเศษคุณสามารถตรวจสอบอีเมลได้ - หรือมาพร้อมกับคลาสเครื่องมือ?
Authenticator มีความแน่นอนใช้และละเว้น
เนื่องจากมีคุณสมบัติมากมายและซับซ้อนที่จำเป็นต้องตั้งค่าตั้งชื่อด้วยแอตทริบิวต์ที่ง่ายและง่ายต่อการใช้งานสำหรับตัวคุณเองดังนั้นให้ใช้คลาสการกำหนดค่า
แพ็คเกจ no005_get คลาสเครื่องมือ; นำเข้า java.io.file; นำเข้า java.util.arraylist; นำเข้า java.util.list; Mailsenderconfig ระดับสาธารณะ {สตริงส่วนตัว smtpmailhost; // ที่อยู่ Mail Server ที่รองรับโปรโตคอล SMTP/* ใช้เพื่อเข้าสู่ระบบเซิร์ฟเวอร์เมล*/ชื่อผู้ใช้สตริงส่วนตัวรหัสรหัสผ่านส่วนตัว; // ชื่อเนื้อหาสตริงส่วนตัว; // เนื้อหาสตริงส่วนตัว Frommail; // แสดงอีเมลที่ส่งจากกล่องจดหมายส่วนตัวรายการส่วนตัว <String> tomails; // รายการส่วนตัวของผู้รับ <String> CCMails; // CC รายการส่วนตัว <String> bccmails; // Secret CC Private List <file> ไฟล์แนบ; // เอกสารแนบ MailsenderConfig (สตริง smtpmailhost, subject สตริง, เนื้อหาสตริง, สตริง Frommail) {super (); smtpmailhost = smtpmailhost; this.subject = เรื่อง; this.content = เนื้อหา; this.fommail = frommail;} สตริงสาธารณะ getSmtpmailhost () {return smtpmailhost;} โมฆะสาธารณะ setsmtpmailhost (สตริง smtpmailhost) {smtpmailhost = smtpmailhost; ชื่อผู้ใช้;} สตริงสาธารณะ getPassword () {return password;} โมฆะสาธารณะ setPassword (รหัสผ่านสตริง) {this.password = รหัสผ่าน;} สตริงสาธารณะ getFrommail () {return frommail;} โมฆะสาธารณะ setFrommail tomails) {this.tomails = tomails;} รายการสาธารณะ <String> getCcMails () {return ccmails;} โมฆะสาธารณะ setCcMails (รายการ <String> ccmails) {this.ccmails = ccmails;} รายการสาธารณะ bccmails) {this.bccmails = bccmails;} รายการสาธารณะ <file> getattachments () {return attathed;} public void setattachments (รายการ <file> ไฟล์แนบ) {this.attachments = ไฟล์แนบ; {return content;} โมฆะสาธารณะ setContent (เนื้อหาสตริง) {this.content = content;} โมฆะสาธารณะ addtomail (สตริงเมล) {ถ้า (this.tomails == null) {this.tomails = new ArrayList <String> (); {this.ccmails = new ArrayList <String> ();} this.ccmails.add (mail);} โมฆะสาธารณะ addbccmail (จดหมายสตริง) {ถ้า (this.bccmails == null) {this.bccmails = new ArrayList <String> (this.attachments == null) {this.attachments = new ArrayList <file> ();} this.attachments.add (f);}}} ในที่สุดก็มีส่วนของคลาสเครื่องมือซึ่งส่วนใหญ่รับผิดชอบต่อหลายสิ่ง: การดำเนินการเริ่มต้นบางอย่างตามกฎ Java Mail, การแปลคลาสการกำหนดค่าแอตทริบิวต์ที่กำหนดเองตั้งค่าด้วยกฎ Java Mail และส่งอีเมล
นอกจากนี้ควรกล่าวถึงว่าเนื่องจากคุณสมบัติที่จัดทำโดยคลาสเครื่องมือมี จำกัด กรณีที่มากขึ้นอาจไม่ตรงกับความต้องการดังนั้น mimemessage จึงถูกเปิดเผย หากไม่ตรงตามความต้องการนักพัฒนาสามารถประมวลผลและกำหนดค่าเองในขณะที่ชิ้นส่วนอื่น ๆ ยังสามารถใช้คลาสเครื่องมือได้
แพ็คเกจ no005_get คลาสเครื่องมือ; นำเข้า java.io.file; นำเข้า java.util.properties; นำเข้า Javax.activation.datahandler; นำเข้า Javax.activation.datasource; นำเข้า Javax.activative javax.mail.multipart; นำเข้า Javax.mail.session; นำเข้า Javax.mail.transport; นำเข้า Javax.mail.internet.internetaddress; นำเข้า Javax.mail.internet.mimebodypart; หากผู้ส่งและผู้รับหลายรายส่ง CC.SimpleAuthenticator; Mailsender ชั้นเรียนสาธารณะ {ส่วนตัว MailsenderConfig C; ข้อความ mimemessage ส่วนตัว; Mailsender สาธารณะ (mailsenderconfig config) โยนข้อยกเว้น {super (); this.c = config; (c.getSmtpmailhost ()! = null && c.getSmtpmailhost (). ความยาว ()> 0) {props.put ("mail.smtp.host", c.getsmtpmailhost ());} ถ้า (c.getusername ()! = null && c.getusername () C.GetPassword (). length ()> 0) {props.put ("mail.smtp.auth", "true"); return session.getDefaultInstance (props, ใหม่ simpleauthenticator (c.getUserName (), c.getPassword ()); session.getDefaultInstance (อุปกรณ์ประกอบฉาก);}}/*** ตั้งค่าคุณสมบัติจดหมาย Java*@throws Exception*/โมฆะส่วนตัว setConfig () โยนข้อยกเว้น {this.configvalid (); เซสชัน s = this.initsession (); message = new mimeMessage (s); InternetAddress (c.getFrommail ()); message.addfrom (frommailarray); ถ้า (c.getTomails ()! = null && c.getTomails (). size ()> 0) {สำหรับ (สตริงจดหมาย: c.getTomails ()) {message.addrecipient (ข้อความ (c.getCcMails ()! = null && c.getCcMails (). size ()> 0) {สำหรับ (สตริงเมล: c.getCcMails ()) {message.addRecipient (message.recipientType.cc, new InternetAddress (mail));}}}} Mail: C.GetTomails ()) {message.addRecipient (message.recipientType.bcc, InternetAddress ใหม่ (อีเมล));}} // ข้อความชื่อข้อความ Setsubject (C.GetSubject ());/* ข้อความ*/mimebodypart "ข้อความ/html; charset = gb2312");/* ห่อหุ้มข้อมูลของแต่ละส่วนของอีเมล*/multipart multipart = new mimemultipart (); multipart.addbodypart (bodypart); message.setContentent (multipart); C.GetAttachments (). size ()> 0) {สำหรับ (ไฟล์ f: C.GetAttachments ()) {attainmentPart = ใหม่ mimeBodyPart (); ds = ใหม่ fileDataSource (f); attachmentpart.setDatahandler (ใหม่ datahandler (ds)); sun.misc.base64encoder (). encode (f.getName (). getBytes ()) + "? ="); multipart.addbodypart (attachmentpart);}} message.setContent (multipart);}/*** การตรวจสอบการกำหนดค่า ข้อยกเว้น ("วัตถุการกำหนดค่าว่างเปล่า");} ถ้า (c.getSmtpMailHost () == null || C.GetSmtpMailHost (). ความยาว () == 0) {โยนข้อยกเว้นใหม่ ("เซิร์ฟเวอร์ SMTP ว่างเปล่า");} ถ้า (c.getFrommail () == null && c.getFrommail (). ความยาว () == 0) {โยนข้อยกเว้นใหม่ ( ข้อยกเว้นใหม่ ("จดหมายของผู้รับว่าง");} ถ้า (c.getSubject () == null || c.getSubject (). ความยาว () == 0) {โยนข้อยกเว้นใหม่ ("ชื่ออีเมลว่างเปล่า");} ถ้า (c.getContent () null || c.getContent MessagingException*/โมฆะสาธารณะส่ง () พ่น messagingException {transport.send (ข้อความ);}/*** ตั้งค่า mimemessage เพื่อเปิดเผยวัตถุนี้เพื่อให้นักพัฒนาสามารถตั้งค่าคุณสมบัติส่วนบุคคลด้วยตัวเอง* @return*/สาธารณะ mimemessage getMessage () SetMessage (ข้อความ mimeMessage) {this.message = message;}} จัดเตรียมแพ็คเกจการทดสอบอย่างง่าย No005_to คลาสเครื่องมือ นำเข้า java.io.file; นำเข้า Javax.mail.internet.mimemessage; Public Class TestCall {โมฆะสาธารณะคงที่หลัก (String [] args) โยนข้อยกเว้น {/* ข้อมูลที่จำเป็น*/String SMTP_MAIL_HOST = "SMTP.163.com"; // ที่อยู่เซิร์ฟเวอร์อีเมลนี้ไปที่อีเมลที่คุณเป็นของและตรวจสอบสตริง email_username = "[email protected]"; String email_password = "รหัสผ่าน"; String to_email_address_1 = "[email protected]"; string to_email_address_2 = "ตัวอย่าง MailsenderConfig (smtp_mail_host, "นี่คือจดหมายทดสอบสำหรับการทดสอบ Java Mail Framework 3", "นี่คือเนื้อหา 3", email_username); c.setUserName (email_username); c.setPassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail ไฟล์ ("d: /1.txt")); mailsender ms = new mailsender (c); ms.send (); system.out.println ("ส่ง ... ");*//*การใช้งาน 2. ในบางกรณีการตั้งค่าที่ทำโดยคลาสเครื่องมือไม่ตรงกับความต้องการ สำหรับการทดสอบ Java Mail Framework 4. "," นี่คือเนื้อหา 4. ", email_username); c.setUserName (email_username); c.setPassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail ไฟล์ ("d: /1.txt")); mailsender ms = new mailsender (c); mimeMessage message = ms.getMessage (); message.setContent ("นี่คือเนื้อหาที่ถูกแทนที่ด้วย mimeMessage 4", "text/html; charset = utf-8"); ms.setMessage (ข้อความ); ms.send (); system.out.println ("ส่ง ... ");}} อัพเกรดคลาสเครื่องมือ
ในการใช้งานจริงฉันพบว่าเมื่อส่งอีเมลเป็นแบทช์การสนับสนุนของคลาสเครื่องมือไม่ดี ตัวอย่างเช่นการส่งอีเมล 100 ฉบับตามตรรกะของคลาสเครื่องมือด้านบนการเชื่อมต่อจะถูกสร้างขึ้นสำหรับอีเมลทุกฉบับที่ส่ง ดังนั้นจึงไม่ใช่ 100 อีเมล 100 ครั้งใช่ไหม นี่เป็นขยะที่ร้ายแรง
ดังนั้นการอัพเกรดบางอย่างจะเกิดขึ้นจนถึงจุดนี้:
Authenticator มีความแน่นอนใช้และละเว้น
คลาสการกำหนดค่า
นำเข้า java.util.arraylist; นำเข้า java.util.list; MailsenderConfig ระดับสาธารณะ {สตริงส่วนตัว smtpmailhost; // ที่อยู่ Mail Server ที่รองรับโปรโตคอล SMTP/* ใช้เพื่อเข้าสู่ระบบเซิร์ฟเวอร์เมล*/ชื่อผู้ใช้สตริงส่วนตัวรหัสรหัสผ่านส่วนตัว; // ชื่อเนื้อหาสตริงส่วนตัว; // เนื้อหาสตริงส่วนตัว Frommail; // แสดงอีเมลที่ส่งจากกล่องจดหมายส่วนตัวรายการส่วนตัว <String> tomails; // รายการส่วนตัวของผู้รับ <String> CCMails; // CCP รายการส่วนตัว <String> bccmails; // รายการส่วนตัว CCP Secret <Attment> Attachments; // เอกสารแนบสตริงส่วนตัว contentType = "text/html; charset = utf-8";/*** constructor* @param smtpmailhost เซิร์ฟเวอร์ Smtp* @param หัวเรื่องหัวเรื่อง* @param เนื้อหาเนื้อหา (ส่งข้อความ* html; Charset = utf-8 "โดยเริ่มต้น หัวเรื่อง, เนื้อหาสตริง, สตริงจาก mail) {super (); smtpmailhost = smtpmailhost; this.subject = เรื่อง; this.content = เนื้อหา; this.frommail = frommail;}/*** constructor* @param smtpmailhost เซิร์ฟเวอร์ Smtp* @param ชื่อผู้ใช้ Mail Server ชื่อผู้ใช้ @param รหัสผ่าน Mail Mail Password* @param ชื่อเรื่องเนื้อหา* @param เนื้อหา ชื่อผู้ใช้สตริง, รหัสผ่านสตริง, หัวข้อสตริง, เนื้อหาสตริง, สตริง Frommail) {super (); smtpmailhost = smtpmailhost; this.username = ชื่อผู้ใช้; this.password = รหัสผ่าน; this.subject = เรื่อง; this.content = เนื้อหา; this.fommail = frommail;} โมฆะสาธารณะ addTomail (สตริงเมล) {ถ้า (this.tomails == null) {this.tomails = new ArrayList <String> ();} this.tomails.add (mail); arrayList <String> ();} this.ccmails.add (mail);} โมฆะสาธารณะ addbccmail (จดหมายสตริง) {ถ้า (this.bccmails == null) {this.bccmails = new ArrayList <string> (); {this.attachments = new ArrayList <Atkitment> ();} this.attachments.add (a);}/** getter และ setter*/สตริงสาธารณะ getSmtpmailhost () {return smtpmailhost; getUserName () {return username;} โมฆะสาธารณะ setUserName (ชื่อผู้ใช้สตริง) {this.userName = username;} สตริงสาธารณะ getPassword () {ส่งคืนรหัสผ่าน;} โมฆะสาธารณะ setPassword (รหัสผ่านสตริง) {this.password = รหัสผ่าน; frommail;} รายการสาธารณะ <String> getTomails () {return tomails;} โมฆะสาธารณะ settomails (รายการ <String> tomails) {this.tomails = tomails;} รายการสาธารณะ <String> getCcMails () {ส่งคืน ccmails; รายการ <String> getBcCMails () {return bccmails;} โมฆะสาธารณะ setBccMails (รายการ <String> bccmails) {this.bccmails = bccmails;} รายการสาธารณะ <attement> getattachments {return subject;} โมฆะสาธารณะ setSubject (หัวเรื่องสตริง) {this.subject = subject;} public String getContent () {return content;} โมฆะสาธารณะ setContent (เนื้อหาสตริง) {this.content = content; ContentType;}} Entity Entity Class Import java.io.file;/*** emaitment entity entity class*/ไฟล์แนบระดับสาธารณะ {ไฟล์ไฟล์ส่วนตัว; ชื่อไฟล์สตริงส่วนตัว; ไฟล์สาธารณะ getFile () {ไฟล์ส่งคืน;} void setFile สาธารณะ (ไฟล์ไฟล์) filename.trim (). length () == 0) {return file.getName ();} return filename;} โมฆะสาธารณะ setFilename (ชื่อสตริงไฟล์) {this.filename = filename;} ไฟล์แนบสาธารณะ {super (); this.file = file;}} บทคัดย่อการส่งชั้นนำเข้าชั้นนำ java.util.properties; นำเข้า Javax.mail.session; (c.getSmtpmailhost ()! = null && c.getSmtpmailhost (). ความยาว ()> 0) {props.put ("mail.smtp.host", c.getsmtpmailhost ());} ถ้า (c.getusername ()! = null && c.getusername () C.GetPassword (). length ()> 0) {props.put ("mail.smtp.auth", "true"); return session.getDefaultInstance (props, ใหม่ simpleauthenticator (c.getUserName (), c.getPassword ()); session.getDefaultInstance (อุปกรณ์ประกอบฉาก);}}/*** เปิดเผย getter และ setter เพื่อให้การตั้งค่าของเซสชันเพื่อรองรับการส่งชุดอีเมล/ส่งอีเมลหลายฉบับเซสชันสามารถแคชได้ @return*/public session getSession () {return session;} public void setsession (เซสชันเซสชัน) {this.session = เซสชัน;}} ส่งชั้นเรียน
นำเข้า javax.activation.datahandler; นำเข้า Javax.activation.datasource; นำเข้า Javax.activation.filedataSource; นำเข้า Javax.mail.address; นำเข้า Javax.mail.bodypart; นำเข้า Javax.mail.message; javax.mail.transport; นำเข้า Javax.mail.internet.internetaddress; นำเข้า Javax.mail.internet.mimebodypart; นำเข้า Javax.mail.internet.mimemessage; นำเข้า javax.mail.internet.mimentipart; {Private MailsenderConfig C; ข้อความ mimemessage ส่วนตัว; Mailsender สาธารณะ (MailsenderConfig config) โยนข้อยกเว้น {super (); this.c = config; this.setConfig ();} mailsender สาธารณะ (mailsenderconfig config, เซสชันเซสชัน) โยนข้อยกเว้น {super (); this.c = config; this.setConfig (); super.setsession (เซสชัน);}/*** ส่งอีเมล*@throws messagingexception*/โมฆะสาธารณะส่ง () พ่น messagingexception {transport.send (ข้อความ);}/*** รับ mimemessage และเปิดเผยวัตถุนี้ getMessage () {return message;}/*** ตั้งค่า mimemessage เพื่อเปิดเผยวัตถุนี้เพื่ออำนวยความสะดวกให้นักพัฒนาตั้งค่าคุณสมบัติส่วนบุคคล (วิธีการที่ไม่ได้รับการสนับสนุนโดยคลาสเครื่องมือนี้สามารถตั้งค่าโดยนักพัฒนา void setConfig () พ่นข้อยกเว้น {this.configValid (); ถ้า (เซสชัน == null) {เซสชัน = initsession (c);} ข้อความ = new mimemessage (เซสชัน);/* ผู้ส่ง*/ที่อยู่ [] frommailarray = ที่อยู่ใหม่ [1]; (c.getTomails ()! = null && c.getTomails (). size ()> 0) {สำหรับ (สตริงเมล: c.getTomails ()) {message.addRecipient (message.recipientType.to, new InternetAddress (mail));}}} Mail: C.GetCcMails ()) {message.addRecipient (message.recipientType.cc, internetaddress ใหม่ (อีเมล));}} ถ้า (c.getTomails ()! = null && c.getTomails () ขนาด () InternetAddress (Mail));}} // ข้อความชื่อเรื่องอีเมล SetsUbject (C.GetSubject ());/* ข้อความ*/mimebodypart bodypart = mimebodypart ใหม่ (); bodypart.setContent (c.getContent () mimemultipart (); multipart.addbodypart (bodypart); message.setContent (multipart);/* สิ่งที่แนบมา*/bodypart attachmentpart = null; dataSource ds = null; if (c.getAttachments ()! mimebodypart (); ds = new filedataSource (a.getfile ()); attachmentpart.setDatahandler (ใหม่ datahandler (ds)); attachmentpart.setfilename (mimeutility.encodetext (a.getfilename ())); multipart.addbodypart (attachmentpart);}} message.setContent (multipart);}/*** การตรวจสอบการกำหนดค่า ข้อยกเว้น ("วัตถุการกำหนดค่าว่างเปล่า");} ถ้า (c.getSmtpMailHost () == null || C.GetSmtpMailHost (). ความยาว () == 0) {โยนข้อยกเว้นใหม่ ("เซิร์ฟเวอร์ SMTP ว่างเปล่า");} ถ้า (c.getFrommail () == null && c.getFrommail (). ความยาว () == 0) {โยนข้อยกเว้นใหม่ ( ข้อยกเว้นใหม่ ("จดหมายของผู้รับว่าง");} ถ้า (c.getSubject () == null || c.getSubject (). ความยาว () == 0) {โยนข้อยกเว้นใหม่ ("ชื่ออีเมลว่างเปล่า");} ถ้า (c.getContent (); java.io.file; นำเข้า javax.mail.session; นำเข้า Javax.mail.internet.mimemessage; นำเข้า org.junit.test; คลาสสาธารณะ readme {/* ข้อมูลที่จำเป็น*/สตริง smtp_mail_host = "smtp.163.com"; // ที่อยู่เซิร์ฟเวอร์อีเมลนี้ไปที่หน้าคำอธิบายของเซิร์ฟเวอร์เมลที่คุณเป็นอยู่และตรวจสอบสตริง email_username = "[email protected]"; String email_password = "รหัสผ่าน"; สตริง to_email_address_1 = "ตัวอย่าง @163.com" สถานการณ์การใช้งาน 1, การใช้งานปกติ*/mailsenderconfig C = ใหม่ MailsenderConfig (SMTP_MAIL_HOST, "นี่คือจดหมายสำหรับการทดสอบ Mail Mail Framework ในกรณีที่ 1", "นี่คือเนื้อหา", email_username); c.setUserName (email_username); c.setPassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail ไฟล์แนบ (ไฟล์ใหม่ ("d: /1.txt"))); Mailsender ms = new Mailsender (c); ms.send (); system.out.println ("ส่ง ... ");}@testpublic void case2 คุณสมบัติ*/mailsenderconfig c = new mailsenderconfig (smtp_mail_host, "นี่คือจดหมายสำหรับการทดสอบกรอบจดหมาย Java ในกรณีที่ 2", "นี่คือเนื้อหา" email_username); c.setUserName (email_username); c.setPassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail ไฟล์แนบ (ไฟล์ใหม่ ("d: /1.txt")))); Mailsender ms = new Mailsender (c); ข้อความ mimeMessage = ms.getMessage (); message.setContent ("นี่คือเนื้อหาที่ถูกแทนที่โดย mimemessage ในกรณีที่ 2" "ข้อความ/html; charset = utf-8"); ms.setMessage (ข้อความ); ms.send (); system.out.println ("ส่ง ... ");}@testpublic void case3 () โยนข้อยกเว้น {/* สถานการณ์การใช้งาน 3 ครั้ง ให้ความสนใจกับความตรงต่อเวลาของเซสชันแคช*/mailsenderconfig C = ใหม่ MailsenderConfig (SMTP_MAIL_HOST, "นี่เป็นจดหมายฉบับแรกสำหรับการทดสอบ Mail Mail Framework เพื่อแชร์เซสชันในกรณีที่ 3" "นี่คือเนื้อหา" email_username); c.setUserName (email_username); c.setPassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail ไฟล์แนบ (ไฟล์ใหม่ ("d: /1.txt"))); เซสชัน = mailsender.initsession (c); mailsender ms = mailsender ใหม่ (c, เซสชัน); ms.send (); c.setsubject ("นี่คือจดหมายฉบับที่สอง เซสชัน); ms.send (); system.out.println ("ส่ง ... ");}} สรุป
ในปัจจุบันมีความต้องการมากมายที่ฉันมี หากฉันพบกับความต้องการทั่วไปอื่น ๆ ในอนาคตและมีเวลาฉันจะเพิ่มพวกเขาต่อไป
ข้างต้นเป็นบทสรุปของความต้องการทั่วไปของการส่งอีเมลใน Java ที่แนะนำให้คุณรู้จัก ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!