บทความนี้อธิบายกระบวนการโดยละเอียดในการส่งอีเมล Java สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
1. ข้อตกลงอีเมล
ส่งอีเมลโดย: SMTP (Simple Mail Transport Protocal)
โปรโตคอลการรับอีเมล: POP3 (ที่ทำการไปรษณีย์ Protocal 3)
อีเมลสามารถรับได้โดยการส่งโปรโตคอล IMAP ใหม่
(โต้ตอบกับเซิร์ฟเวอร์ทีละขั้นตอน)
SMTP:
2. กระบวนการส่งและรับอีเมล:
โดยทั่วไปแล้ว SMTP และ POP3 เป็นเซิร์ฟเวอร์สองตัว (โฮสต์)
พอร์ตของจดหมาย SMTP คือ 25
พอร์ต POP3 คือ 110
ตัวอย่างอีเมล
1) ติดตั้ง Foxmail:
2) เมื่อส่งอีเมล Base64 การเข้ารหัสชื่อผู้ใช้และรหัสผ่าน
// base64 การเข้ารหัสชื่อผู้ใช้และรหัสผ่าน @Test โมฆะสาธารณะ BASE64 () {สตริงชื่อ = "WJ_LEAF12345"; สตริง pwd = "1qaz2wsx"; Base64Encoder EN = ใหม่ base64Encoder (); name = en.encode (name.getBytes ()); pwd = en.encode (pwd.getBytes ()); System.err.println (ชื่อ); System.err.println (PWD); -3) ส่งอีเมลผ่านรหัส Java
ส่งอีเมลใน Java คุณต้องนำเข้าแพ็คเกจใหม่
Mail.jar Core Package สำหรับการส่งอีเมล
activation.jar เข้ารหัสผู้ใช้และรหัสผ่าน
มีสามคลาสหลักใน mail.jar:
javax.mail.session หมายถึงเซสชันที่มีเซิร์ฟเวอร์เมล มีเพียงหนึ่งในโครงการทั้งหมด
javax.mail.message (อินเตอร์เฟส) - เตรียมส่งข้อมูลข้อมูล
MIMEMESSAGE - คุณสามารถตั้งค่าข้อมูลประเภทข้อมูล
การขนส่งมีวิธีการส่งข้อความ
ขั้นตอนที่ 1: นำเข้าแพ็คเกจสองขวด
ขั้นตอนที่ 2: ส่งอีเมลง่ายๆ
โมฆะสาธารณะ sendmail () โยนข้อยกเว้น {// ขั้นตอนที่ 1: ประกาศวัตถุคุณสมบัติเพื่อวางคุณสมบัติข้อมูล prop = คุณสมบัติใหม่ (); // ตั้งค่าเซิร์ฟเวอร์ใดที่จะเชื่อมต่อกับ prop.setProperty ("mail.host", "smtp.126.com"); // ตั้งค่าว่าจะตรวจสอบ prop.setProperty ("mail.smtp.auth", "true"); // ขั้นตอนที่ 2: ประกาศชื่อผู้ใช้และรหัสผ่าน Authenticator Auth = ใหม่ Authenticator () {// วัตถุการเข้าถึงนี้ที่ส่งคืนผู้ใช้และรหัสผ่านสาธารณะ passwordauthentication getPasswordauthentication () {passwordauthentication PA = รหัสผ่านใหม่ ("AAA", "SSS"); กลับ PA; - /////ขั้นตอนที่ 2: รับเซสชันออบเจ็กต์เซสชันเซสชัน = session.getDefaultInstance (prop, auth); // ตั้งค่าโหมดการดีบักของเซสชันเซสชัน SetDebug (จริง); // ขั้นตอนที่ 3: ประกาศข้อมูล mimeMessage MM1 = mimeSessage ใหม่ (เซสชัน); // ขั้นตอนที่ 4: ตั้งค่าที่อยู่อีเมลผู้ส่งจาก = new InternetAddress ("[email protected]"); mm1.setfrom (จาก); // ขั้นตอนที่ 5: ตั้งค่า MM1.SetRecipient (ผู้รับ TECONTTYPE.TO, InternetAddress ใหม่ ("[email protected]")); MM1.SetRecipient (ผู้รับ TECONTYPE.CC, InternetAddress ใหม่ ("[email protected]")); MM1.SetRecipient (ผู้รับ TECONTYPE.BCC, InternetAddress ใหม่ ("[email protected]")); // ขั้นตอนที่ 6: ตั้งค่าหัวข้อ mm1.setsubject ("นี่คืออีเมลที่ส่งใน Java 3"); mm1.setContent ("สวัสดีนี่คืออีเมลที่ส่งใน Java ลองอีกครั้ง 3333", "ข้อความ/ธรรมดา; charset = utf-8"); // ขั้นตอนที่ 7: Transport.send (MM1); -ขั้นตอนที่ 3: V ส่งอีเมลด้วยการเชื่อมต่อ HyperConnection
MM1.SetSubject ("นี่คืออีเมลที่ส่งใน Java SFASDF3"); mm1.setContent ("สวัสดีนี่คืออีเมลที่ส่งใน java, <a href = 'http: //www.baidu.com'> baidu </a>", "text/html; charset = utf-8"); // ขั้นตอนที่ 7: Transport.send (MM1);ขั้นตอนที่ 4: อีเมลของสัญลักษณ์
โมฆะสาธารณะ sendfile () โยนข้อยกเว้น {คุณสมบัติ p = คุณสมบัติใหม่ (); P.SetProperty ("mail.host", "smtp.163.com"); P.SetProperty ("mail.smtp.auth", "true"); เซสชัน S = session.getDefaultInstance (P, Authenticator ใหม่ () {@Override Passwork PasswordAuthentication GetPasswordAuthentication () {ส่งคืนรหัสผ่านใหม่ ("WW", "123");}}); S.SetDebug (จริง); // ประกาศ MEMEMESSAGE MEMEMESSAGE MSG = MEMEMESSAGE ใหม่; msg.setfrom (InternetAddress ใหม่ ("[email protected]")); msg.setRecipient (ผู้รับ TECIENTTO.TO, InternetAddress ใหม่ ("[email protected]")); msg.setsubject ("รูปภาพ"); // ขั้นตอนที่ 1: ประกาศการประมวลผลหลายส่วน mimemuLeipart mm = new MimeMultipart (); // ขั้นตอนที่ 2: ประกาศ mimebodypart body1 = new mimebodypart (); // ขั้นตอนที่ 3: ตั้งค่าตัวละคร DataSource ds = ใหม่ filedataSource (ไฟล์ใหม่ ("./ img/a.jpg")); Datahandler DH = ใหม่ Datahandler (DS); Body1.SetDatahandler (DH); // ชื่อจะต้องตั้งค่า body1.setFilename (mimeutility.encodetext ("beauty.jpg")); mimebodypart body2 = mimebodypart ใหม่ (); // ขั้นตอนที่ 3: ตั้งค่าตัวละคร DataSource DS2 = ใหม่ FileDataSource (ไฟล์ใหม่ ("./ img/b.jpg")); Datahandler DH2 = ใหม่ Datahandler (DS2); Body2.SetDatahandler (DH2); // ชื่อจะต้องตั้งค่า body2.setFilename (mimeutility.encodetext ("Beauty 2.jpg")); mimebodypart body3 = mimebodypart ใหม่ (); // ขั้นตอนที่ 3: ตั้งค่าตัวละคร DataSource DS3 = ใหม่ FileDataSource (ไฟล์ใหม่ ("./ img/m.mp3")); Datahandler DH3 = ใหม่ Datahandler (DS3); Body3.SetDatahandler (DH3); // ชื่อจะต้องตั้งค่า body3.setfilename (mimeutility.encodetext ("End of the Century.mp3")); // เพิ่ม body1 ถึง mm mm.addbodypart (body1); mm.addbodypart (body2); mm.addbodypart (body3); msg.setContent (mm); // ส่ง transport.send (msg); -ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของทุกคน