“ฉันเอง—อีกแล้ว และอีกครั้ง ฉันมีอะไรจะเซอร์ไพรส์คุณนิดหน่อย”

"วันนี้ผมจะมาสอนวิธีการส่งอีเมลโดยใช้ Java "

"เรามาเริ่มกันที่ข่าวดี: Java มีไลบรารีเนทีฟสำหรับการทำงานกับอีเมล "

"ข่าวร้ายคือไลบรารีนี้เป็นส่วนหนึ่งของJava EEไม่ใช่Java SE "

" Java EEเป็นเวอร์ชันเสริมของJavaSEซึ่งรวมถึงคลาสที่จำเป็นสำหรับแอปพลิเคชันที่มีคุณลักษณะดีกว่า ตัวอย่างเช่น แอปพลิเคชันสำหรับการทำงานกับอีเมล"

“เข้าใจแล้ว แล้วจะทำอะไรต่อล่ะ”

"ฉันขอแนะนำให้คุณดาวน์โหลดห้องสมุดนี้และเพียงแค่นั้น"

"ใช้ IntelliJ IDEA อย่างชาญฉลาด"

"สร้างคลาสและเพิ่ม ไลบรารี javax.mail.*และjavax.mail.internet.*ลงในส่วนนำเข้า

"จากนั้นกดAlt+Enterแล้วปล่อยให้IDEAทำทุกอย่างให้คุณ:

"ข้อเสนอในการดาวน์โหลดไลบรารีที่ขาดหายไปมีลักษณะดังนี้:"

ส่งอีเมล - 1

"นี่คือลักษณะของหน้าต่างดาวน์โหลด:"

ส่งอีเมล - 2

"หรือดาวน์โหลดได้ที่นี่ "

"ดาวน์โหลดแล้ว จะทำอย่างไรต่อไป"

"คุณต้องไปที่การตั้งค่าโครงการ (เปิดการตั้งค่าโมดูล) ไปที่ส่วน Libraries และเพิ่มไฟล์ JAR จากไฟล์เก็บถาวรที่ดาวน์โหลดมา"

ส่งอีเมล - 3

"เสร็จแล้ว."

"บรรทัดต่อไปนี้ไม่เป็นสีแดงแล้วหรือ"

import javax.mail.internet.MimeMessage;
import javax.mail.internet.*;

"ใช่."

“ดีมาก งั้นเราไปกันต่อเลย”

"มีสามขั้นตอนในการส่งอีเมล"

1) สร้างการเชื่อมต่อกับเซิร์ฟเวอร์อีเมลที่จะใช้เพื่อส่งอีเมล

2) สร้างอีเมลและเพิ่มไฟล์แนบหากจำเป็น

3) ส่งอีเมล

"ให้เริ่มต้นจากจุดเริ่มต้น."

"ในการส่งอีเมลใน Java คุณต้องสร้างการเชื่อมต่อกับเซิร์ฟเวอร์อีเมลก่อน"

"จะเป็นการดีที่สุดถ้าคุณมีบัญชีอีเมลบนเซิร์ฟเวอร์อยู่แล้วเซิร์ฟเวอร์อีเมลสมัยใหม่ไม่ต้องการส่งข้อความจากผู้ใช้ที่ไม่ระบุตัวตน กังวลเกี่ยวกับสแปม "

"คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ด้วยการเรียกใช้เมธอด javax.mail.Session.getDefaultInstance เพียงครั้งเดียว:"

สร้างการเชื่อมต่อกับเมลเซิร์ฟเวอร์
Properties props = new Properties();

// Here we need to load data into the props object

Session session = Session.getDefaultInstance(props);

"แต่คุณต้องผ่านการตั้งค่าเซิร์ฟเวอร์อีเมลไปยังวิธีนี้"

"ตัวอย่างเช่น คุณสามารถสร้างไฟล์ Mail.properties และเติมด้วยการตั้งค่าที่ต้องการ เช่น อะไรทำนองนี้:"

Mail.properties
mail.transport.protocol=smtp
mail.host=smtp.gmail.com
mail.smtp.auth=true
mail.user=arnold@gmail.com
mail.password=strong

"สิ่งที่สำคัญที่สุดคือการระบุโปรโตคอลและโฮสต์ แต่คุณอาจต้องตั้งค่าเพิ่มเติม ขึ้นอยู่กับวิธีการทำงานของเซิร์ฟเวอร์อีเมล"

"คุณสามารถเพิ่มข้อมูลนี้ไปยังวัตถุ Properties ในโค้ด Java ของคุณ"

"ตัวอย่างเช่น:"

สร้างการเชื่อมต่อกับเมลเซิร์ฟเวอร์"
Properties props = new Properties();
props.put("mail.transport.protocol", "smtps");
props.put("mail.smtps.host", “smtp.gmail.com”);
props.put("mail.smtps.auth", "true");
props.put("mail.smtp.sendpartial", "true");

Session session = Session.getDefaultInstance(props);

"เยี่ยม เรามีเซสชัน ตอนนี้เรามาสร้างอีเมลกัน"

"สิ่งนี้ทำได้ง่ายกว่าที่เห็นในแวบแรก ตัวอย่างเช่น:"

สร้างข้อความอีเมล
// Create a message
MimeMessage message = new MimeMessage(session);

// Set the message subject
message.setSubject("Test email!");

// Add the message text
message.setText("Asta la vista, baby!");

// Specify the recipient
message.addRecipient(Message.RecipientType.TO, new InternetAddress("stalone@gmail.com"));

// Specify the delivery date
message.setSentDate(new Date());

"ฉันสามารถระบุที่อยู่อีเมลใดก็ได้เป็นผู้รับ"

"ใช่ ยิ่งไปกว่านั้นคุณยังสามารถระบุที่อยู่อีเมลใดก็ได้เป็นผู้ส่ง"

"เจ๋ง! ฉันจะพิจารณาเรื่องนี้"

"ตอนนี้เราต้องส่งข้อความนี้"

"ขั้นแรก เราลงชื่อเข้าใช้เซิร์ฟเวอร์ จากนั้นเราส่งข้อความของเรา โค้ดเพียงสองบรรทัด:"

ส่งข้อความ
// Username and password for a Gmail account
String userLogin = “arnold@gmail.com;
String userPassword = “strong”;

// Sign in on the server:
Transport transport = session.getTransport();
transport.connect("smtp.gmail.com", 465, userLogin, userPassword);

// Send a message:
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));

"น่าสนใจยังไงล่ะ! ฉันต้องลองดูแล้วล่ะ"

"หากคุณสงสัยว่าจะส่งข้อความพร้อมไฟล์แนบได้อย่างไร คุณสามารถอ่านได้ที่นี่ "

"หากคุณต้องการทราบวิธีการรับจดหมาย โปรดดูที่นี่ "

"Holy moly ลิงค์ที่มีประโยชน์อะไร!"

"ใช่ ฉันจะสร้างไคลเอนต์อีเมลของฉันเอง เจ๋ง!"

"ขอบคุณ เอลลี่!"