บทความนี้แบ่งปันรหัสเฉพาะของ Java Web STMP ส่งอีเมลพร้อมไฟล์แนบสำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
Public Class MailFilesEndUtils {อุปกรณ์ประกอบคุณสมบัติส่วนตัว; // ระบบเซสชันส่วนตัวของ System Property; // จดหมายเซสชันวัตถุส่วนตัว mimemessage mimemsg; // MIME Mail Object Multipart MP ส่วนตัว; // วัตถุหลายพาร์ทเนื้อหาอีเมลชื่อเรื่องไฟล์แนบและเนื้อหาอื่น ๆ ทั้งหมดจะถูกเพิ่มเข้าไปในนั้นจากนั้นวัตถุ mimeMessage จะถูกสร้างขึ้น/** * constructor * @param */public mailfilesEndUtils () {props = system.getProperties (); props.put ("mail.smtp.auth", "false"); session = session.getDefaultInstance (อุปกรณ์ประกอบฉาก, null); session.setDebug (จริง); MIMEMSG = mimemessage ใหม่ (เซสชัน); mp = new mimeMultipart (); } /** * constructor * @param smtp mail sendutils (สตริง smtp, ชื่อผู้ใช้สตริง, รหัสผ่านสตริง) {props = system.getProperties (); props.put ("mail.smtp.auth", "true"); props.put ("mail.smtp.host", smtp); props.put ("ชื่อผู้ใช้" ชื่อผู้ใช้); props.put ("รหัสผ่าน", รหัสผ่าน); session = session.getDefaultInstance (อุปกรณ์ประกอบฉาก, null); session.setDebug (จริง); MIMEMSG = mimemessage ใหม่ (เซสชัน); mp = new mimeMultipart (); } /*** ส่งอีเมล* /บูลีนสาธารณะ sendmail (สตริงจาก, สตริง [] ถึง, หัวข้อสตริง, เนื้อหาสตริง, ชื่อไฟล์สตริง) {ลอง {// ตั้งค่าผู้ส่ง mimemsg.setFrom (ใหม่ InternetAddress (จาก)); // ตั้งค่าผู้รับสำหรับ (int i = 0; i <to.length; i ++) {mimemsg.setRecipients (message.recipientType.to, internetaddress.parse (ถึง [i])); } // ตั้งค่า cc // สำหรับ (int i = 0; i <copyto.length; i ++) {// mimemsg.setrecipients (message.recipienttype.cc, internetaddress.parse (copyto [i])); //} // ตั้งค่าหัวข้อ mimemsg.setsubject (หัวเรื่อง); // ตั้งค่าข้อความ bodypart bp = mimebodypart ใหม่ (); bp.setContent (เนื้อหา "ข้อความ/html; charset = utf-8"); mp.addbodypart (BP); // ตั้งค่าไฟล์แนบ bp = new MimeBodyPart (); ไฟล์ filedataSource = new filedataSource (ชื่อไฟล์); BP.SetDatahandler (ใหม่ Datahandler (ยื่น)); bp.setfilename (mimeutility.encodetext (fileds.getName (), "UTF-8", "B")); mp.addbodypart (BP); mimemsg.setContent (MP); mimemsg.savechanges (); // ส่งอีเมลถ้า (props.get ("mail.smtp.auth"). เท่ากับ ("true")) {transport transport = session.getTransport ("smtp"); transport.connect ((สตริง) props.get ("mail.smtp.host"), (สตริง) props.get ("ชื่อผู้ใช้"), (สตริง) props.get ("รหัสผ่าน")); Transport.sendMessage (mimemsg, mimemsg.getRecipients (message.recipienttype.to)); // transport.sendMessage (mimemsg, mimemsg.getrecipients (message.recipienttype.cc); Transport.close (); } else {transport.send (mimemsg); } system.out.println ("การส่งจดหมายสำเร็จ"); } catch (messagingException e) {// todo บล็อก catch block ที่สร้างอัตโนมัติ e.printstacktrace (); } catch (unsupportencodingexception e) {// toDo บล็อก catch ที่สร้างโดยอัตโนมัติ E.PrintStackTrace (); } return true; } // โมฆะสาธารณะ tosendmail (sendmailparam sendmailparam) {// mailfilesendutils อีเมล = mailfilesendutils ใหม่ (sendmailparam.getSmtp (), sendmailparam.getUserName () sendmailparam.getSubject (), sendmailparam.getContent (), sendmailparam.getFilePath ()); //} โมฆะคงที่สาธารณะ (สตริง [] args) {string smtp = "smtp.exmail.qq.com"; String username = "ส่งบัญชีอีเมล"; String Password = "ส่งรหัสผ่านอีเมล"; สตริงจาก = "ส่งอีเมล"; String [] to = {"ที่อยู่อีเมลเพื่อรับอีเมล"}; // string [] copyto = {"ที่อยู่อีเมล CCC"}; สตริงเรื่อง = "หัวเรื่อง 6"; String Content = "Mail Content 6"; string filename = "ไฟล์ที่แนบมา"; mailfilesEndUtils อีเมล = new MailFilesEndUtils (SMTP, ชื่อผู้ใช้, รหัสผ่าน); // email.sendmail (จาก, ถึง, copyto, หัวเรื่อง, เนื้อหา, ชื่อไฟล์); email.sendmail (จาก, ไป, หัวเรื่อง, เนื้อหา, ชื่อไฟล์); -(เอกสารแนบ: เวอร์ชัน SSL)
Public Class MailFilesEndUtils {อุปกรณ์ประกอบคุณสมบัติส่วนตัว; // ระบบเซสชันส่วนตัวของ System Property; // จดหมายเซสชันวัตถุส่วนตัว mimemessage mimemsg; // MIME Mail Object Multipart MP ส่วนตัว; // วัตถุหลายพาร์ทเนื้อหาอีเมลชื่อเรื่องไฟล์แนบและเนื้อหาอื่น ๆ ทั้งหมดจะถูกเพิ่มเข้าไปในนั้นจากนั้นวัตถุ mimeMessage จะถูกสร้างขึ้น/** * constructor * @param */public mailfilesEndUtils () {props = system.getProperties (); props.put ("mail.smtp.auth", "false"); session = session.getDefaultInstance (อุปกรณ์ประกอบฉาก, null); session.setDebug (จริง); MIMEMSG = mimemessage ใหม่ (เซสชัน); mp = new mimeMultipart (); } /** * constructor * @param smtp mail sendutils (สตริง smtp, สตริงชื่อผู้ใช้, รหัสผ่านสตริง) {security.addprovider (ใหม่ com.sun.net.ssl.internal.ssl.provider (); สตริงสุดท้าย ssl_factory = "javax.net.ssl.sslsocketfactory"; อุปกรณ์ประกอบฉาก = system.getProperties (); mailsslsocketFactory sf = null; ลอง {sf = new mailsslsocketFactory (); } catch (GeneralsecurityException e) {} sf.setTrustAllHosts (จริง); props.put ("mail.smtp.auth", "true"); props.put ("mail.smtp.host", smtp); props.put ("mail.smtp.socketfactory.class", ssl_factory); props.put ("mail.smtp.socketfactory.fallback", "false"); props.put ("mail.smtp.ssl.enable", "true"); props.put ("mail.smtp.port", "465"); props.put ("mail.smtp.ssl.socketfactory", sf); // props.put ("ชื่อผู้ใช้", ชื่อผู้ใช้); // props.put ("รหัสผ่าน", รหัสผ่าน); Session = Session.getInstance (อุปกรณ์ประกอบฉาก, Authenticator ใหม่ () {@Override PreventAterAtentication GetPasswordAuthentication () {ส่งคืนรหัสผ่านใหม่ (ชื่อผู้ใช้, รหัสผ่าน);}}); session.setDebug (จริง); MIMEMSG = mimemessage ใหม่ (เซสชัน); mp = new mimeMultipart (); } /*** ส่งอีเมล* /บูลีนสาธารณะ sendmail (สตริงจาก, สตริง [] ถึง, หัวข้อสตริง, เนื้อหาสตริง, ชื่อไฟล์สตริง) {ลอง {// ตั้งค่าผู้ส่ง mimemsg.setFrom (ใหม่ InternetAddress (จาก)); // ตั้งค่าตัวรับสัญญาณสำหรับ (int i = 0; i <to.length; i ++) {mimemsg.setRecipients (message.recipientType.to, internetaddress.parse (ถึง [i])); } // ตั้งค่า cc // สำหรับ (int i = 0; i <copyto.length; i ++) {// mimemsg.setrecipients (message.recipienttype.cc, internetaddress.parse (copyto [i])); // ตั้งค่าข้อความ bodypart bp = mimebodypart ใหม่ (); bp.setContent (เนื้อหา "ข้อความ/html; charset = utf-8"); mp.addbodypart (BP); // ตั้งค่าไฟล์แนบ bp = new MimeBodyPart (); ไฟล์ filedataSource = new filedataSource (ชื่อไฟล์); BP.SetDatahandler (ใหม่ Datahandler (ยื่น)); bp.setfilename (mimeutility.encodetext (fileds.getName (), "UTF-8", "B")); mp.addbodypart (BP); mimemsg.setContent (MP); mimemsg.savechanges (); // ส่งจดหมายถ้า (props.get ("mail.smtp.auth"). เท่ากับ ("true")) {transport transport = session.getTransport ("smtp"); transport.connect ((สตริง) props.get ("mail.smtp.host"), (สตริง) props.get ("ชื่อผู้ใช้"), (สตริง) props.get ("รหัสผ่าน")); Transport.sendMessage (MIMEMSG, MIMEMSG.GETRECIPIENTS (Message.RecipientType.TO)); // transport.sendMessage (mimemsg, mimemsg.getRecipients (message.recipienttype.cc)); Transport.close (); } else {transport.send (mimemsg); } system.out.println ("อีเมลที่ส่งสำเร็จ"); } catch (messagingException e) {e.printStackTrace (); } catch (unsupportencodingexception e) {e.printstacktrace (); } return true; } บูลีนสาธารณะ tosendmail (sendmailparam sendmailparam) {mailfilesendutils อีเมล = ใหม่ mailfilesendutils (sendmailparam.getsmtp (), sendmailparam.getusername (), sendmailparam.getpassword (); email.sendmail (sendmailparam.getfrom (), sendmailparam.getto (), sendmailparam.getsubject (), sendmailparam.getContent (), sendmailparam.getFilePath ()); กลับมาจริง; } // โมฆะคงที่สาธารณะ (สตริง [] args) {// string smtp = "smtp.mxhichina.com"; // string username = "emailbox"; // รหัสผ่านสตริง = "รหัสผ่านอีเมล"; // สตริง = "ใครจะส่ง"; "huawei"; // string content = "เนื้อหาอีเมล 6666"; // string filename = "gdt-3583118353-ad-20170823.xls"; // mailfilesendutils eMail = new MailFilesEndUtils email.sendmail (จาก, ไป, หัวเรื่อง, เนื้อหา, ชื่อไฟล์); //}} ในโครงการฉันแสดงความคิดเห็นวิธีการหลักแล้วใช้ tosendmail (sendmailparam sendmailparam)
sendmailparam ที่กำหนดไว้ที่นี่คือ:
คลาสสาธารณะ sendmailparam {สตริงส่วนตัว smtp; ชื่อผู้ใช้สตริงส่วนตัว; รหัสผ่านสตริงส่วนตัว สตริงส่วนตัวจาก; // ผู้ส่งสตริงส่วนตัว [] ถึง; // ผู้รับ // สตริง [] ลิขสิทธิ์ = {"[email protected]"}; หัวข้อสตริงส่วนตัว; // หัวเรื่องอีเมลเนื้อหาสตริงส่วนตัว; // เนื้อหาอีเมลสตริงส่วนตัว filepath; // พา ธ เพื่อรับไฟล์สาธารณะ sendmailparam () {this.smtp = "smtp.exmail.qq.com"; // ตัวอย่างนี้ username = "บัญชีอีเมล"; this.password = "รหัสผ่านอีเมล"; this.from = "อีเมล"; this.subject = ""; this.content = ""; this.filepath = ""; } สตริงสาธารณะ getSmtp () {return smtp; } โมฆะสาธารณะ setSMTP (สตริง smtp) {this.smtp = smtp; } สตริงสาธารณะ getUserName () {ส่งคืนชื่อผู้ใช้; } โมฆะสาธารณะ setUserName (ชื่อผู้ใช้สตริง) {this.userName = ชื่อผู้ใช้; } สตริงสาธารณะ getPassword () {ส่งคืนรหัสผ่าน; } โมฆะสาธารณะ setPassword (รหัสผ่านสตริง) {this.password = รหัสผ่าน; } สตริงสาธารณะ getFrom () {return from; } โมฆะสาธารณะ setFrom (สตริงจาก) {this.from = จาก; } สตริงสาธารณะ [] getto () {กลับไป; } โมฆะสาธารณะ setto (สตริง [] ถึง) {this.to = to; } สตริงสาธารณะ getSubject () {return subject; } โมฆะสาธารณะ setSubject (หัวเรื่องสตริง) {this.subject = หัวเรื่อง; } สตริงสาธารณะ getContent () {return content; } โมฆะสาธารณะ setContent (เนื้อหาสตริง) {this.content = เนื้อหา; } สตริงสาธารณะ getFilePath () {return filepath; } โมฆะสาธารณะ setFilePath (String filePath) {this.filePath = filePath; -แพ็คเกจการพึ่งพา Maven
<Ederency> <sdeperency> javax.mail </groupId> <ratifactid> Mail </artifactId> <version> 1.4.7 </Serve> </erperency>
แพ็คเกจการพึ่งพา Gradle
รวบรวม "Javax.mail: Mail: 1.4.7"
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น