ตัวอย่างนี้แบ่งปันรหัสเฉพาะของ Java โดยใช้ซ็อกเก็ตเพื่อใช้โปรโตคอล SMTP สำหรับการส่งอีเมลสำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
แพคเกจเมล; นำเข้า java.io.bufferedreader; นำเข้า java.io.ioexception; นำเข้า java.io.inputstream; นำเข้า java.io.inputstreamreader; นำเข้า java.io.OutputStream; นำเข้า java.io.printwriter; java.util.list; นำเข้า java.util.list; นำเข้า org.apache.commons.codec.binary.base64; จดหมายสาธารณะชั้นเรียน {โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่น IOException {เมลเมล = mail ใหม่ (); mail.setsmtpserver ("smtp.qq.com"); mail.setFrommail ("1344364 ****@qq.com"); mail.addtomail ("105648 ****@qq.com"); mail.addtomail ("ยาว *******@sina.com"); mail.setUsername ("134364 ****"); mail.setPassword ("************"); mail.setSubject ("ทดสอบจดหมาย"); mail.setContent ("<h1> สวัสดี </h1> <br/> <img src =/" https://www.baidu.com/img/baidu_jgylogo3.gif?v=39549282.gif/ "/>"); mail.setshowlog (จริง); Mail.Send (); System.out.println ("โปรแกรมสิ้นสุด"); } / ** หัวเรื่องอีเมล ** / หัวข้อสตริงส่วนตัว; / ** ส่งจากที่อยู่นี้ **/ สตริงส่วนตัว Frommail; / ** ชื่อผู้ใช้ **/ ชื่อผู้ใช้สตริงส่วนตัว; / ** รหัสผ่านเข้าสู่ระบบ **/ รหัสผ่านสตริงส่วนตัว; / ** ที่อยู่เซิร์ฟเวอร์ SMTP **/ สตริงส่วนตัว smtpserver; / ** พอร์ตเซิร์ฟเวอร์ SMTP (ค่าเริ่มต้น: 25) **/ ส่วนตัว int smtpport = 25; / ** ที่อยู่ทั้งหมดที่ส่งไปยัง tomail **/ รายการส่วนตัว <String> tomail; / ** เนื้อหาเมล **/ เนื้อหาสตริงส่วนตัว; / ** ไม่ว่าจะแสดงบันทึก **/ private boolean showlog; โมฆะสาธารณะ addTomail (จดหมายสตริง) {ถ้า (tomail == null) tomail = new ArrayList <String> (); tomail.add (จดหมาย); } โมฆะสาธารณะส่ง () {ถ้า (smtpserver == null) {โยน runtimeException ใหม่ ("smtpserver ไม่สามารถว่างเปล่า"); } if (ชื่อผู้ใช้ == null) {โยน runtimeException ใหม่ ("ชื่อผู้ใช้ไม่สามารถว่างเปล่า"); } ถ้า (รหัสผ่าน == null) {โยน runtimeException ใหม่ ("รหัสผ่านไม่สามารถว่างเปล่า"); } if (frommail == null) {โยน runtimeException ใหม่ ("frommail ไม่สามารถว่างเปล่า"); } if (tomail == null || tomail.isempty ()) {โยน runtimeException ใหม่ ("tomail ไม่สามารถว่างเปล่า"); } if (content == null || tomail.isempty ()) {โยน runtimeException ใหม่ ("เนื้อหาไม่สามารถว่างเปล่า"); } ซ็อกเก็ตซ็อกเก็ต = null; inputStream ใน = null; outputstream out = null; ลอง {ซ็อกเก็ต = ซ็อกเก็ตใหม่ (smtpserver, smtpport); Socket.setSotimeout (3000); ใน = socket.getInputStream (); out = socket.getOutputStream (); } catch (ioexception e) {โยน runtimeException ใหม่ ("เชื่อมต่อกับ" + smtpserver + ":" + smtpport + "ล้มเหลว", e); } bufferedReaderProxy reader = ใหม่ bufferedReaderProxy (ใหม่ inputStreamReader (in), showlog); PrintWriterProxy Writer = ใหม่ PrintWriterProxy (out, showlog); Reader.ShowResponse (); Writer.println ("helo" + smtpserver); Reader.ShowResponse (); Writer.println ("Auth Login"); Reader.ShowResponse (); writer.println (สตริงใหม่ (base64.encodeBase64 (ชื่อผู้ใช้ GetBytes ()))); Reader.ShowResponse (); writer.println (สตริงใหม่ (base64.encodeBase64 (password.getBytes ()))); Reader.ShowResponse (); Writer.println ("จดหมายจาก:" + frommail); Reader.ShowResponse (); สำหรับ (String Mail: Tomail) {writer.println ("rcpt ถึง:" + mail); Reader.ShowResponse (); } writer.println ("data"); Writer.println ("เนื้อหาประเภท: ข้อความ/html"); if (หัวเรื่อง! = null) {writer.println ("หัวเรื่อง:" + หัวเรื่อง); } writer.println ("จาก:" + frommail); Writer.print ("ถึง:"); สำหรับ (String Mail: Tomail) {writer.print (mail + ";"); } writer.println (); Writer.println (); Writer.println (เนื้อหา); Writer.println ("."); Reader.ShowResponse (); Writer.println ("เลิก"); Reader.ShowResponse (); ลอง {socket.close (); } catch (ioexception e) {system.err.println ("ส่งอีเมลเสร็จสมบูรณ์, ปิดข้อผิดพลาดของซ็อกเก็ตเกิดขึ้น:" + e.getMessage ()); }} สตริงสาธารณะ getSubject () {return subject; } โมฆะสาธารณะ setSubject (หัวเรื่องสตริง) {this.subject = หัวเรื่อง; } สตริงสาธารณะ getFrommail () {return frommail; } โมฆะสาธารณะ setFrommail (String frommail) {this.fommail = frommail; } สตริงสาธารณะ getSmtpserver () {return smtpserver; } โมฆะสาธารณะ setSmtPserver (String smtpserver) {this.smtpserver = smtpserver; } สาธารณะ int getSmtpport () {return smtpport; } โมฆะสาธารณะ setSMTPPORT (int SMTPPORT) {this.SMTPPORT = SMTPPORT; } สตริงสาธารณะ getContent () {return content; } โมฆะสาธารณะ setContent (เนื้อหาสตริง) {this.content = เนื้อหา; } รายการสาธารณะ <String> getTomail () {return tomail; } โมฆะสาธารณะ settomail (รายการ <String> tomail) {this.tomail = tomail; } สตริงสาธารณะ getUserName () {ส่งคืนชื่อผู้ใช้; } โมฆะสาธารณะ setUserName (ชื่อผู้ใช้สตริง) {this.userName = ชื่อผู้ใช้; } สตริงสาธารณะ getPassword () {ส่งคืนรหัสผ่าน; } โมฆะสาธารณะ setPassword (รหัสผ่านสตริง) {this.password = รหัสผ่าน; } บูลีนสาธารณะ getShowLog () {return showlog; } โมฆะสาธารณะ setShowLog (boolean showlog) {this.showlog = showlog; } คลาสคงที่ printwriterproxy ขยาย printwriter {private boolean showrequest; Public PrintWriterProxy (OutputStream, Boolean showrequest) {super (out, true); this.showRequest = showrequest; } @Override โมฆะสาธารณะ println () {ถ้า (showrequest) system.out.println (); super.println (); } การพิมพ์โมฆะสาธารณะ (สตริง s) {ถ้า (showrequest) system.out.print (s); super.print (s); }} คลาสคงที่ bufferedReaderProxy ขยาย bufferedReader {บูลีนส่วนตัว showResponse = true; Public BufferedReaderProxy (Reader In, Boolean showResponse) {super (in); this.ShowResponse = showResponse; } โมฆะสาธารณะ showResponse () {ลอง {String line = readline (); หมายเลขสตริง = line.substring (0, 3); int num = -1; ลอง {num = integer.parseint (หมายเลข); } catch (exception e) {} if (num == -1) {โยน runtimeException ใหม่ ("ข้อผิดพลาดข้อมูลการตอบกลับ:" + บรรทัด); } อื่นถ้า (num> = 400) {โยน runtimeException ใหม่ ("ส่งอีเมลล้มเหลว:" + บรรทัด); } if (showResponse) {system.out.println (บรรทัด); }} catch (ioexception e) {system.out.println ("ไม่ได้รับการตอบกลับ"); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น