1. ข้อมูลเบื้องต้นเกี่ยวกับอีเมล
อีเมลประกอบด้วยข้อมูลจำนวนมาก ข้อมูลหลักๆ ยังไม่ได้รับการพิจารณาในขณะนี้ เช่น สำเนาคาร์บอน เป็นต้น
1. ผู้รับ: ที่อยู่อีเมลของผู้รับ เช่น [email protected]
2. ชื่อผู้รับ: มันจะปรากฏขึ้นเมื่อมีการแสดงอีเมลส่วนใหญ่ เช่น loadfate [email protected]
3. ผู้ส่ง: ที่อยู่อีเมลของผู้ส่ง
4. ชื่อผู้ส่ง:
5. เรื่อง: ชื่อเรื่องของอีเมล
6. เนื้อหาและเอกสารแนบ: เนื้อหาหลักของอีเมล
2. ขั้นตอนทั่วไปในการส่งอีเมลโดยใช้ Java
ในโครงการทั่วไป ไม่มีเมลเซิร์ฟเวอร์แยกต่างหาก โดยทั่วไป จะใช้เซิร์ฟเวอร์ของผู้อื่น
1. ตั้งค่าเซิร์ฟเวอร์ SMTP: เซิร์ฟเวอร์อีเมลที่แตกต่างกันมีที่อยู่ที่แตกต่างกัน ตัวอย่างเช่น smtp.qq.com แสดงถึงเซิร์ฟเวอร์ SMTP ของ Tencent
2. การอนุญาต: ใช้บัญชีและรหัสผ่านของเซิร์ฟเวอร์เพื่อเข้าสู่เซิร์ฟเวอร์
3. สร้างอีเมล: สร้างอีเมลที่มีข้อมูลทั้งหมด เช่น ผู้ส่ง ผู้รับ เนื้อหา ฯลฯ
4. ตั้งค่าคุณสมบัติของอีเมล: เพิ่มข้อมูลให้กับคุณสมบัติของอีเมล
5. การส่งอีเมล: เนื่องจากแพ็คเกจต่างกัน วิธีการส่งจึงไม่สอดคล้องกัน
3. Java Mail และ Apache Mail
Apache Mail เป็นการห่อหุ้ม Java Mail ซึ่งใช้งานง่ายกว่าและมีลำดับชั้นเชิงตรรกะที่ดีกว่า
หากต้องการใช้ Java Mail คุณจะต้องนำเข้าแพ็คเกจ jar เท่านั้น: mail.jar
เมื่อใช้ Apache Mail คุณจะต้องนำเข้าแพ็คเกจ jar สองแพ็คเกจ: mail.jar และ commons-email-1.3.1.jar
4. ใช้ Java Mail เพื่อส่งอีเมล
คัดลอกรหัสรหัสดังต่อไปนี้:
โมฆะคงที่สาธารณะ main (String [] args) พ่นข้อยกเว้น {
ผู้ใช้สตริงสุดท้าย = "779554589";
รหัสผ่านสตริงสุดท้าย = "";
สตริง fromAddress = "[email protected]";
สตริง toAddress = "[email protected]";
String subject = "หัวข้อทดสอบอีเมล";
String content = "นี่คืออีเมลทดสอบ<b>ฮ่าฮ่า</b>";
//พารามิเตอร์การกำหนดค่า
อุปกรณ์ประกอบฉากคุณสมบัติ = คุณสมบัติใหม่ ();
อุปกรณ์ประกอบฉาก setProperty("mail.smtp.auth", "true");
อุปกรณ์ประกอบฉาก setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.qq.com");
//วิธีที่ 1: ใช้วัตถุการขนส่งเพื่อส่งอีเมล
-
//สร้างเซสชันผ่านพารามิเตอร์
เซสชันเซสชัน = Session.getInstance (อุปกรณ์ประกอบฉาก);
//เปิดใช้งานโหมดแก้ไขข้อบกพร่อง
session.setDebug (จริง);
//สร้างอีเมลและตั้งค่าข้อมูล
ข้อความ = MimeMessage ใหม่ (เซสชัน);
message.setFrom(ที่อยู่อินเทอร์เน็ตใหม่(จากที่อยู่));
message.setSubject(หัวเรื่อง);
message.setText(เนื้อหา);
//สร้างการถ่ายโอน
การขนส่งการขนส่ง = session.getTransport();
//เชื่อมต่อกับเซิร์ฟเวอร์ smtp
Transport.connect(ผู้ใช้, รหัสผ่าน);
//ส่ง
Transport.sendMessage (ข้อความ InternetAddress ใหม่ [] { InternetAddress ใหม่ (toAddress) });
ขนส่ง.ปิด();
-
//วิธีที่ 2: ใช้วิธีคงที่ของคลาส Transport เพื่อส่งอีเมล
-
// รับการเชื่อมต่อที่ได้รับอนุญาตเมื่อสร้างเซสชัน
เซสชั่นเซสชั่น = Session.getInstance (อุปกรณ์ประกอบฉาก, Authenticator ใหม่ () {
@แทนที่
ป้องกัน PasswordAuthentication getPasswordAuthentication () {
ส่งคืน PasswordAuthentication ใหม่ (ผู้ใช้, รหัสผ่าน);
-
-
session.setDebug (จริง);
//สร้างอีเมลและตั้งค่าข้อมูล
ข้อความ = MimeMessage ใหม่ (เซสชัน);
message.setSubject(หัวเรื่อง);
message.setFrom(ที่อยู่อินเทอร์เน็ตใหม่(จากที่อยู่));
message.setRecipient (RecipientType.TO, InternetAddress ใหม่ (toAddress));
message.setContent(เนื้อหา, "ข้อความ/html;charset=utf-8");
//ส่งโดยตรง ข้อความจะถูกสร้างขึ้นผ่านเซสชันที่ได้รับอนุญาต
Transport.ส่ง(ข้อความ);
-
-
5. ใช้ Apache Mail เพื่อส่งอีเมล
คัดลอกรหัสรหัสดังต่อไปนี้:
ApacheMailTest คลาสสาธารณะ {
// เซิร์ฟเวอร์ smtp
สตริงส่วนตัวชื่อโฮสต์ = "smtp.qq.com";
//บัญชีและรหัสผ่าน
ชื่อผู้ใช้สตริงส่วนตัว = "779554589";
รหัสผ่านสตริงส่วนตัว = "นี่เป็นความลับ";
//ผู้ส่ง
สตริงส่วนตัว fromAddress = "[email protected]";
//ชื่อผู้ส่ง
สตริงส่วนตัว fromName = "loadfate";
โมฆะคงที่สาธารณะ main (String [] args) พ่นข้อยกเว้น {
//ผู้รับและชื่อผู้รับ
สตริง toAddress = "[email protected]";
สตริง toName = "loadfate";
การทดสอบ ApacheMailTest = ApacheMailTest ใหม่ ();
// ข้อยกเว้นทั้งหมดได้รับการจัดการเพื่อการเรียกดูที่ง่ายดาย
test.sendSimpleEmail(toAddress, toName);
test.sendHtmlEmail(toAddress, toName);
test.sendMultiPartEmail(toAddress, toName);
System.out.println("ส่งเรียบร้อยแล้ว");
-
//ส่งอีเมลง่ายๆ คล้ายกับข้อความ
โมฆะสาธารณะ sendSimpleEmail (สตริง toAddress, สตริง toName) ส่งข้อยกเว้น {
อีเมล SimpleEmail = SimpleEmail ใหม่();
email.setHostName(hostName);//ตั้งค่าเซิร์ฟเวอร์ smtp
email.setAuthentication(ชื่อผู้ใช้, รหัสผ่าน);//ตั้งค่าข้อมูลการอนุญาต
email.setCharset("utf-8");
email.setFrom(fromAddress, fromName, "utf-8");//ตั้งค่าข้อมูลผู้ส่ง
email.addTo(toAddress, toName, "utf-8");//ตั้งค่าข้อมูลผู้รับ
email.setSubject("Test Subject");//ตั้งค่าหัวเรื่อง
email.setMsg("นี่คือการทดสอบง่ายๆ!");//ตั้งค่าเนื้อหาอีเมล
email.send();//ส่งอีเมล
-
//ส่งอีเมลพร้อมเนื้อหา Html
โมฆะสาธารณะ sendHtmlEmail (สตริง toAddress, สตริง toName) ส่งข้อยกเว้น {
อีเมล HtmlEmail = ใหม่ HtmlEmail();
email.setHostName(ชื่อโฮสต์);
email.setAuthentication(ชื่อผู้ใช้, รหัสผ่าน);
email.setCharset("utf-8");
email.addTo(toAddress, toName, "utf-8");
email.setFrom(fromAddress, fromName, "utf-8");
email.setSubject("นี่คืออีเมล html");
// ตั้งค่าเนื้อหา html ในการใช้งานจริงคุณสามารถอ่านโค้ด html ที่เขียนได้จากข้อความ
email.setHtmlMsg("<div style='width:100px;height:200px;'>a</div>");
อีเมล์.ส่ง();
-
//ส่งอีเมลที่ซับซ้อน รวมถึงไฟล์แนบ ฯลฯ
โมฆะสาธารณะ sendMultiPartEmail (สตริง toAddress, สตริง toName) ส่งข้อยกเว้น {
อีเมล MultiPartEmail = null;
อีเมล = MultiPartEmail ใหม่ ();
email.setHostName(ชื่อโฮสต์);
email.setAuthentication(ชื่อผู้ใช้, รหัสผ่าน);
email.setCharset("utf-8");
email.addTo(toAddress, toName, "utf-8");
email.setFrom(fromAddress, fromName, "utf-8");
email.setSubject("นี่คืออีเมลพร้อมไฟล์แนบ");
email.setMsg("<a href='#'>ทดสอบเนื้อหา</a>");
//เพิ่มเนื้อหาเพิ่มเติมในอีเมล
ไฟล์แนบ EmailAttachment = ใหม่ EmailAttachment();
attachment.setPath("D://mail.txt");//local file
// attachment.setURL(URL ใหม่("http://xxx/a.gif"));//ไฟล์ระยะไกล
attachment.setDisposition(อีเมลแนบ.ATTACHMENT);
attachment.setDescription("ข้อมูลคำอธิบาย");
// ตั้งชื่อที่แสดงไฟล์แนบซึ่งจะต้องเข้ารหัส ไม่เช่นนั้นภาษาจีนจะอ่านไม่ออก
attachment.setName(MimeUtility.encodeText("Mail.txt"));
//เพิ่มไฟล์แนบในอีเมล
email.attach(ไฟล์แนบ);
อีเมล์.ส่ง();
-
-
6. โฟลเดอร์โครงการแนบ: maildemo
ดาวน์โหลดที่อยู่: http://pan.baidu.com/s/1bn1Y6BX
หากคุณมีคำถามหรือข้อเสนอแนะโปรดติดต่อฉัน
คำอธิบายไฟล์:
1. maildemo.zip: ซอร์สโค้ดของ maildemo
2. mail.jar: แพ็คเกจ Jar ของ Java Mail
3. commons-email-1.3.1.jar: แพ็คเกจ jar ของ Apache Mail