"๋ ๋์ผ. ๊ทธ๋ฆฌ๊ณ ๋, ๋์๊ฒ ์ค ์ฝ๊ฐ์ ์ํ๋ผ์ด์ฆ๊ฐ ์์ด."
"์ค๋์ Java๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฉ์ผ์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค . "
"์ข์ ์์๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค. Java์๋ ์ด๋ฉ์ผ ์์ ์ ์ํ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค. "
"๋์ ์์์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ Java SE ๊ฐ ์๋ Java EE ์ ์ผ๋ถ๋ผ๋ ๊ฒ์ ๋๋ค ."
" Java EE ๋ JavaSE ์ ํ์ฅ๋ ๋ฒ์ ์ผ๋ก , ๋ ๋ฉ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ํด๋์ค๋ฅผ ํฌํจํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ด๋ฉ์ผ ์์ ์ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค."
"์์์ด, ๊ทธ๋ผ ์ด๋ป๊ฒ ํ ์ ์๋?"
"์, ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค."
"IntelliJ IDEA๋ฅผ ํ๋ช ํ๊ฒ ์ฌ์ฉํ์ธ์."
"ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ๊ฐ์ ธ์ค๊ธฐ ์น์ ์ javax.mail.* ๋ฐ javax.mail.internet.* ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
"๊ทธ๋ฐ ๋ค์ Alt+Enter๋ฅผ ๋๋ฅด๊ณ IDEA๊ฐ ๋ชจ๋ ์์ ์ ์ํํ๋๋ก ํฉ๋๋ค .
"๋๋ฝ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํ๋ผ๋ ์ ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค."

"๋ค์ด๋ก๋ ์ฐฝ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค."

"๋๋ ์ฌ๊ธฐ์์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. "
"๋ค์ด๋ก๋ํ์ต๋๋ค. ๋ค์์ ๋ฌด์์ ๋๊น?"
"๋ผ์ด๋ธ๋ฌ๋ฆฌ ์น์ ์ ํ๋ก์ ํธ ์ค์ (๋ชจ๋ ์ค์ ์ด๊ธฐ)์ผ๋ก ์ด๋ํ๊ณ ๋ค์ด๋ก๋ํ ์์นด์ด๋ธ์์ JAR ํ์ผ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค."

"์๋ฃ."
"๋ค์ ์ค์ด ๋ ์ด์ ๋นจ๊ฐ์์ด ์๋๋๊น?"
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.transport.protocol=smtp
mail.host=smtp.gmail.com
mail.smtp.auth=true
mail.user=arnold@gmail.com
mail.password=strong
"๊ฐ์ฅ ์ค์ํ ๊ฒ์ ํ๋กํ ์ฝ๊ณผ ํธ์คํธ๋ฅผ ์ง์ ํ๋ ๊ฒ์ด์ง๋ง ๋ฉ์ผ ์๋ฒ์ ๋์ ๋ฐฉ์์ ๋ฐ๋ผ ์ถ๊ฐ ์ค์ ์ด ํ์ํ ์ ์์ต๋๋ค."
"Java ์ฝ๋์์ ๋ฐ๋ก Properties ๊ฐ์ฒด์ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋จํ ์ถ๊ฐํ ์ ์์ต๋๋ค."
"์๋ฅผ ๋ค์ด:"
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));
"์ฌ๋ฏธ์๋ค! ํ๋ฒ ํด๋ด์ผ๊ฒ ๋ค."
"์ฒจ๋ถ ํ์ผ์ด ์๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ด ๊ถ๊ธํ๋ค๋ฉด ์ฌ๊ธฐ์์ ํด๋น ๋ด์ฉ์ ์ฝ์ ์ ์์ต๋๋ค ."
"๋ฉ์ผ ์์ ๋ฐฉ๋ฒ๋ ์๊ณ ์ถ์ผ์๋ฉด ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ญ์์ค ."
"๊ฑฐ๋ฃฉํ ๋ชฐ๋ฆฌ. ์ผ๋ง๋ ์ ์ฉํ ๋งํฌ์ธ๊ฐ!"
"๊ทธ๋, ์ด์ ๋๋ง์ ์ด๋ฉ์ผ ํด๋ผ์ด์ธํธ๋ฅผ ๋ง๋ค๊ฑฐ์ผ. ๋ฉ์ ธ!"
"๊ณ ๋ง์, ์๋ฆฌ!"
GO TO FULL VERSION