{"id":450,"date":"2014-12-18T22:59:42","date_gmt":"2014-12-19T07:59:42","guid":{"rendered":"http:\/\/blog.box.kr\/?p=450"},"modified":"2014-12-18T22:59:42","modified_gmt":"2014-12-19T07:59:42","slug":"%ed%8e%8cgmail-smtp-server%eb%a5%bc-%ec%9d%b4%ec%9a%a9%ed%95%9c-%eb%a9%94%ec%9d%bc%ec%a0%84%ec%86%a1-%ec%98%88%ec%a0%9c","status":"publish","type":"post","link":"https:\/\/blog.box.kr\/?p=450","title":{"rendered":"[\ud38c]Gmail SMTP Server\ub97c \uc774\uc6a9\ud55c \uba54\uc77c\uc804\uc1a1 \uc608\uc81c"},"content":{"rendered":"<div class=\"titleWrap\">\n<h2><a href=\"http:\/\/unionbaby.tistory.com\/entry\/Gmail-SMTP-Server%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%A9%94%EC%9D%BC%EC%A0%84%EC%86%A1-%EC%98%88%EC%A0%9C-%EB%AC%B4%EB%A3%8C-SMTP-Authentication\">Gmail SMTP Server\ub97c \uc774\uc6a9\ud55c \uba54\uc77c\uc804\uc1a1 \uc608\uc81c (\ubb34\ub8cc SMTP &amp; Authentication)<\/a><\/h2>\n<p>http:\/\/unionbaby.tistory.com\/category\/+%20Programer\/*%20java?page=2<\/p>\n<div class=\"category\"><a href=\"http:\/\/unionbaby.tistory.com\/category\/+%20Programer\/*%20java\">+ Programer\/* java<\/a>\n<\/div>\n<\/div>\n<div class=\"article\"><span id=\"callbacknestunionbabytistorycom45151\"><\/span><strong>Gmail, Authentication in JavaMail<\/strong><\/p>\n<p>JavaMail 1.4.1:<a href=\"http:\/\/java.sun.com\/products\/javamail\/downloads\/index.html\">http:\/\/java.sun.com\/products\/javamail\/downloads\/index.html<\/a><\/p>\n<p>JAF 1.1.1: <a href=\"http:\/\/java.sun.com\/products\/javabeans\/jaf\/downloads\/index.html\">http:\/\/java.sun.com\/products\/javabeans\/jaf\/downloads\/index.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Gmail.java<\/p>\n<div>\n<table border=\"0\">\n<colgroup>\n<col \/><\/colgroup>\n<tbody valign=\"top\">\n<tr>\n<td>import javax.mail.*;\n<p>import javax.mail.internet.*;<\/p>\n<p>import javax.activation.*;<\/p>\n<p>import java.io.*;<\/p>\n<p>import java.util.*;<\/p>\n<p>import java.security.Security;<\/p>\n<p>public class Gmail<\/p>\n<p>{<\/p>\n<p>public static void main(String[] args)<\/p>\n<p>{<\/p>\n<p>Properties <strong>p<\/strong> = new Properties();<\/p>\n<p>p.put(&#8220;mail.smtp.user&#8221;, &#8220;<a href=\"mailto:gmail_id@gmail.com\">gmail_id@gmail.com<\/a>&#8220;);<\/p>\n<p>p.put(&#8220;mail.smtp.host&#8221;, &#8220;smtp.gmail.com&#8221;);<\/p>\n<p>p.put(&#8220;mail.smtp.port&#8221;, &#8220;465&#8221;);<\/p>\n<p>p.put(&#8220;mail.smtp.starttls.enable&#8221;,&#8221;true&#8221;);<\/p>\n<p>p.put( &#8220;mail.smtp.auth&#8221;, &#8220;true&#8221;);<\/p>\n<p>p.put(&#8220;mail.smtp.debug&#8221;, &#8220;true&#8221;);<\/p>\n<p>p.put(&#8220;mail.smtp.socketFactory.port&#8221;, &#8220;465&#8221;);<\/p>\n<p>p.put(&#8220;mail.smtp.socketFactory.class&#8221;, &#8220;javax.net.ssl.SSLSocketFactory&#8221;);<\/p>\n<p>p.put(&#8220;mail.smtp.socketFactory.fallback&#8221;, &#8220;false&#8221;);<\/p>\n<p>Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());<\/p>\n<p>try {<\/p>\n<p>Authenticator auth = new SMTPAuthenticator();<\/p>\n<p>Session session = Session.getInstance(<strong>p<\/strong>, auth);<\/p>\n<p>session.setDebug(true);<\/p>\n<p>\/\/session = Session.getDefaultInstance(p);<\/p>\n<p>MimeMessage <strong>msg<\/strong> = new MimeMessage(session);<\/p>\n<p>String message = &#8220;Gmail SMTP \uc11c\ubc84\ub97c \uc774\uc6a9\ud55c JavaMail \ud14c\uc2a4\ud2b8&#8221;;<\/p>\n<p><strong>msg<\/strong>.setSubject(&#8220;Gmail SMTP \uc11c\ubc84\ub97c \uc774\uc6a9\ud55c JavaMail \ud14c\uc2a4\ud2b8&#8221;);<\/p>\n<p>Address fromAddr = new InternetAddress(&#8220;<a href=\"mailto:gmail_id@gmail.com\">gmail_id@gmail.com<\/a>&#8220;);<\/p>\n<p><strong>msg<\/strong>.setFrom(fromAddr);<\/p>\n<p>Address toAddr = new InternetAddress(&#8220;<a href=\"mailto:paran_id@paran.com\">paran_id@paran.com<\/a>&#8220;);<\/p>\n<p><strong>msg<\/strong>.addRecipient(Message.RecipientType.TO, toAddr);<\/p>\n<p><strong>msg<\/strong>.setContent(message, &#8220;text\/plain;charset=KSC5601&#8221;);<\/p>\n<p>System.out.println(&#8220;Message: &#8221; + msg.getContent());<\/p>\n<p>Transport.send(<strong>msg<\/strong>);<\/p>\n<p>System.out.println(&#8220;Gmail SMTP\uc11c\ubc84\ub97c \uc774\uc6a9\ud55c \uba54\uc77c\ubcf4\ub0b4\uae30 \uc131\uacf5&#8221;);<\/p>\n<p>}<\/p>\n<p>catch (Exception mex) { \/\/ Prints all nested (chained) exceptions as well<\/p>\n<p>System.out.println(&#8220;I am here??? &#8220;);<\/p>\n<p>mex.printStackTrace();<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>private static class SMTPAuthenticator extends javax.mail.Authenticator {<\/p>\n<p>public PasswordAuthentication getPasswordAuthentication() {<\/p>\n<p>return new PasswordAuthentication(&#8220;cwiskykim&#8221;, &#8220;cw******&#8221;); \/\/ Google id, pwd<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>}<\/p><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>GoogleTest.java<\/p>\n<div>\n<table border=\"0\">\n<colgroup>\n<col \/><\/colgroup>\n<tbody valign=\"top\">\n<tr>\n<td>import java.security.Security;\n<p>import java.util.Properties;<\/p>\n<p>import javax.mail.Message;<\/p>\n<p>import javax.mail.MessagingException;<\/p>\n<p>import javax.mail.PasswordAuthentication;<\/p>\n<p>import javax.mail.Session;<\/p>\n<p>import javax.mail.Transport;<\/p>\n<p>import javax.mail.internet.InternetAddress;<\/p>\n<p>import javax.mail.internet.MimeMessage;<\/p>\n<p>public class GoogleTest {<\/p>\n<p>private static final String SMTP_HOST_NAME = &#8220;smtp.gmail.com&#8221;;<\/p>\n<p>private static final String SMTP_PORT = &#8220;465&#8221;;<\/p>\n<p>private static final String emailMsgTxt = &#8220;Gmail SMTP \uc11c\ubc84\ub97c \uc0ac\uc6a9\ud55c JavaMail \ud14c\uc2a4\ud2b8&#8221;;<\/p>\n<p>private static final String emailSubjectTxt = &#8220;Gmail SMTP \ud14c\uc2a4\ud2b8&#8221;;<\/p>\n<p>private static final String emailFromAddress = &#8220;<a href=\"mailto:cwisky@yahoo.com\">cwisky@yahoo.com<\/a>&#8220;;<\/p>\n<p>private static final String SSL_FACTORY = &#8220;javax.net.ssl.SSLSocketFactory&#8221;;<\/p>\n<p>private static final String[] sendTo = { &#8220;<a href=\"mailto:cwisky@paran.com\">cwisky@paran.com<\/a>&#8220;};<\/p>\n<p>&nbsp;<\/p>\n<p>public static void main(String args[]) throws Exception {<\/p>\n<p>Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());<\/p>\n<p>new GoogleTest().<strong>sendSSLMessage<\/strong>(sendTo, emailSubjectTxt, emailMsgTxt, emailFromAddress);<\/p>\n<p>System.out.println(&#8220;Sucessfully Sent mail to All Users&#8221;);<\/p>\n<p>}<\/p>\n<p>public void <strong>sendSSLMessage<\/strong>(String recipients[], String subject,<\/p>\n<p>String message, String from) throws MessagingException {<\/p>\n<p>boolean debug = true;<\/p>\n<p>Properties props = new Properties();<\/p>\n<p>props.put(&#8220;mail.smtp.host&#8221;, SMTP_HOST_NAME);<\/p>\n<p>props.put(&#8220;mail.smtp.auth&#8221;, &#8220;true&#8221;);<\/p>\n<p>props.put(&#8220;mail.debug&#8221;, &#8220;true&#8221;);<\/p>\n<p>props.put(&#8220;mail.smtp.port&#8221;, SMTP_PORT);<\/p>\n<p>props.put(&#8220;mail.smtp.socketFactory.port&#8221;, SMTP_PORT);<\/p>\n<p>props.put(&#8220;mail.smtp.socketFactory.class&#8221;, SSL_FACTORY);<\/p>\n<p>props.put(&#8220;mail.smtp.socketFactory.fallback&#8221;, &#8220;false&#8221;);<\/p>\n<p>Session session = Session.getDefaultInstance(props,<\/p>\n<p>new javax.mail.Authenticator() {<\/p>\n<p>protected PasswordAuthentication getPasswordAuthentication() {<\/p>\n<p>return new PasswordAuthentication(&#8220;<strong>cwiskykim<\/strong>&#8220;, &#8220;<strong>cw******<\/strong>&#8220;);<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>);<\/p>\n<p>session.setDebug(debug);<\/p>\n<p>Message <strong>msg<\/strong> = new MimeMessage(session);<\/p>\n<p>InternetAddress addressFrom = new InternetAddress(from);<\/p>\n<p><strong>msg<\/strong>.setFrom(addressFrom);<\/p>\n<p>InternetAddress[] addressTo = new InternetAddress[recipients.length];<\/p>\n<p>for (int i = 0; i &lt; recipients.length; i++) {<\/p>\n<p>addressTo[i] = new InternetAddress(recipients[i]);<\/p>\n<p>}<\/p>\n<p><strong>msg<\/strong>.setRecipients(Message.RecipientType.TO, addressTo);<\/p>\n<p>\/\/ Setting the Subject and Content Type<\/p>\n<p><strong>msg<\/strong>.setSubject(subject);<\/p>\n<p><strong>msg<\/strong>.setContent(message, &#8220;text\/plain;charset=KSC5601&#8221;);<\/p>\n<p>Transport.send(<strong>msg<\/strong>);<\/p>\n<p>}<\/p>\n<p>}<\/p><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<p>GMail SMTP \uc11c\ubc84\ub97c \uc774\uc6a9\ud558\uc5ec \ud14d\uc2a4\ud2b8\uc640 \ucca8\ubd80\ud30c\uc77c\uc744 \uc804\uc1a1\ud558\ub294 \uc608\uc81c \ud504\ub85c\uadf8\ub7a8<\/p>\n<div>\n<table border=\"0\">\n<colgroup>\n<col \/><\/colgroup>\n<tbody valign=\"top\">\n<tr>\n<td>package mail;\n<p>import java.io.File;<\/p>\n<p>import java.security.Security;<\/p>\n<p>import java.util.Properties;<\/p>\n<p>import javax.activation.DataHandler;<\/p>\n<p>import javax.activation.FileDataSource;<\/p>\n<p>import javax.mail.BodyPart;<\/p>\n<p>import javax.mail.Message;<\/p>\n<p>import javax.mail.MessagingException;<\/p>\n<p>import javax.mail.Multipart;<\/p>\n<p>import javax.mail.PasswordAuthentication;<\/p>\n<p>import javax.mail.Session;<\/p>\n<p>import javax.mail.Transport;<\/p>\n<p>import javax.mail.internet.InternetAddress;<\/p>\n<p>import javax.mail.internet.MimeBodyPart;<\/p>\n<p>import javax.mail.internet.MimeMessage;<\/p>\n<p>import javax.mail.internet.MimeMultipart;<\/p>\n<p>public class GmailSMTP {<\/p>\n<p>private static final String SMTP_HOST_NAME = &#8220;smtp.gmail.com&#8221;;<\/p>\n<p>private static final String SMTP_PORT = &#8220;465&#8221;;<\/p>\n<p>private static final String emailMsgTxt = &#8220;Gmail SMTP \uc11c\ubc84\ub97c \uc0ac\uc6a9\ud55c JavaMail \ud14c\uc2a4\ud2b8&#8221;;<\/p>\n<p>private static final String emailSubjectTxt = &#8220;Gmail SMTP \ud14c\uc2a4\ud2b8&#8221;;<\/p>\n<p>private static final String emailFromAddress = &#8220;<a href=\"mailto:cwisky@yahoo.com\">cwisky@yahoo.com<\/a>&#8220;;<\/p>\n<p>private static final String SSL_FACTORY = &#8220;javax.net.ssl.SSLSocketFactory&#8221;;<\/p>\n<p>private static final String[] <strong>sendTo<\/strong> = { &#8220;<a href=\"mailto:cwisky@paran.com\">cwisky@paran.com<\/a>&#8220;};<\/p>\n<p>&nbsp;<\/p>\n<p>public static void main(String args[]) throws Exception {<\/p>\n<p>Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());<\/p>\n<p>new GmailSMTP().sendSSLMessage(<strong>sendTo<\/strong>, emailSubjectTxt, emailMsgTxt, emailFromAddress);<\/p>\n<p>System.out.println(&#8220;Sucessfully Sent mail to All Users&#8221;);<\/p>\n<p>}<\/p>\n<p>public void sendSSLMessage(String <strong>recipients<\/strong>[], String subject,<\/p>\n<p>String message, String from) throws MessagingException {<\/p>\n<p>boolean debug = true;<\/p>\n<p>Properties <strong>props<\/strong> = new Properties();<\/p>\n<p>props.put(&#8220;mail.smtp.host&#8221;, SMTP_HOST_NAME);<\/p>\n<p>props.put(&#8220;mail.smtp.auth&#8221;, &#8220;true&#8221;);<\/p>\n<p>props.put(&#8220;mail.debug&#8221;, &#8220;true&#8221;);<\/p>\n<p>props.put(&#8220;mail.smtp.port&#8221;, SMTP_PORT);<\/p>\n<p>props.put(&#8220;mail.smtp.socketFactory.port&#8221;, SMTP_PORT);<\/p>\n<p>props.put(&#8220;mail.smtp.socketFactory.class&#8221;, SSL_FACTORY);<\/p>\n<p>props.put(&#8220;mail.smtp.socketFactory.fallback&#8221;, &#8220;false&#8221;);<\/p>\n<p>Session session = Session.getDefaultInstance(<strong>props<\/strong>,<\/p>\n<p>new javax.mail.Authenticator() {<\/p>\n<p>protected PasswordAuthentication getPasswordAuthentication() {<\/p>\n<p>return new PasswordAuthentication(&#8220;<strong>cwiskykim<\/strong>&#8220;, &#8220;<strong>cw123456<\/strong>&#8220;);<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>);<\/p>\n<p>session.setDebug(debug);<\/p>\n<p>Message <strong>msg<\/strong> = new MimeMessage(session);<\/p>\n<p>InternetAddress addressFrom = new InternetAddress(from);<\/p>\n<p><strong>msg<\/strong>.setFrom(addressFrom);<\/p>\n<p>InternetAddress[] addressTo = new InternetAddress[<strong>recipients<\/strong>.length];<\/p>\n<p>for (int i = 0; i &lt; <strong>recipients<\/strong>.length; i++) {<\/p>\n<p><strong>addressTo<\/strong>[i] = new InternetAddress(<strong>recipients<\/strong>[i]);<\/p>\n<p>}<\/p>\n<p><strong>msg<\/strong>.setRecipients(Message.RecipientType.TO, <strong>addressTo<\/strong>);<\/p>\n<p>\/\/ Setting the Subject and Content Type<\/p>\n<p><strong>msg<\/strong>.setSubject(subject);<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<p>\/*\ud14d\uc2a4\ud2b8\ub9cc \uc804\uc1a1\ud558\ub294 \uacbd\uc6b0 \uc544\ub798\uc758 2\ub77c\uc778\ub9cc \ucd94\uac00\ud558\uba74 \ub41c\ub2e4.<\/p>\n<p>* \uadf8\ub7ec\ub098 \ud14d\uc2a4\ud2b8\uc640 \ucca8\ubd80\ud30c\uc77c\uc744 \ud568\uaed8 \uc804\uc1a1\ud558\ub294 \uacbd\uc6b0\uc5d0\ub294 \uc544\ub798\uc758 2\ub77c\uc778\uc744 \uc81c\uac70\ud558\uace0<\/p>\n<p>* \ub300\uc2e0\uc5d0 \uadf8 \uc544\ub798\uc758 \ubaa8\ub4e0 \ubb38\uc7a5\uc744 \ucd94\uac00\ud574\uc57c \ud55c\ub2e4.<\/p>\n<p>**\/<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/msg.setContent(message, &#8220;text\/plain;charset=KSC5601&#8221;);<\/p>\n<p>\/\/Transport.send(msg);<\/p>\n<p>&nbsp;<\/p>\n<p>\/* \ud14d\uc2a4\ud2b8\uc640 \ucca8\ubd80\ud30c\uc77c\uc744 \ud568\uaed8 \uc804\uc1a1\ud558\ub294 \uacbd\uc6b0\uc5d0\ub294 \uc704\uc758 2\ub77c\uc778\uc744 \uc81c\uac70\ud558\uace0 \uc544\ub798\uc758 \ubaa8\ub4e0 \ub77c\uc778\uc744 \ucd94\uac00\ud55c\ub2e4.*\/<\/p>\n<p>\/\/ Create the message part<\/p>\n<p>BodyPart <strong>messageBodyPart<\/strong> = new MimeBodyPart();<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ Fill the message<\/p>\n<p><strong>messageBodyPart<\/strong>.setText(&#8220;\ud14c\uc2a4\ud2b8\uc6a9 \uba54\uc77c\uc758 \ub0b4\uc6a9\uc785\ub2c8\ub2e4.&#8221;);<\/p>\n<p>Multipart <strong>multipart<\/strong> = new MimeMultipart();<\/p>\n<p><strong>multipart<\/strong>.addBodyPart(<strong>messageBodyPart<\/strong>);<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ Part two is attachment<\/p>\n<p><strong>messageBodyPart<\/strong> = new MimeBodyPart();<\/p>\n<p>File file = new File(&#8220;<strong>C:\/append.txt<\/strong>&#8220;);<\/p>\n<p>FileDataSource <strong>fds<\/strong> = new FileDataSource(file);<\/p>\n<p><strong>messageBodyPart<\/strong>.setDataHandler(new DataHandler(<strong>fds<\/strong>));<\/p>\n<p><strong>messageBodyPart<\/strong>.setFileName(<strong>fds<\/strong>.getName());<\/p>\n<p><strong>multipart<\/strong>.addBodyPart(<strong>messageBodyPart<\/strong>);<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ Put parts in message<\/p>\n<p><strong>msg<\/strong>.setContent(<strong>multipart<\/strong>);<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ Send the message<\/p>\n<p>Transport.send(<strong>msg<\/strong>);<\/p>\n<p>&nbsp;<\/p>\n<p>System.out.println(&#8220;E-mail successfully sent!!&#8221;);<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>Gmail_POP3.java<\/p>\n<div>\n<table border=\"0\">\n<colgroup>\n<col \/><\/colgroup>\n<tbody valign=\"top\">\n<tr>\n<td>package gmail;\n<p>\/**<\/p>\n<p>1.Log into your gmail account via webmail <a href=\"http:\/\/mail.google.com\/\">http:\/\/mail.google.com\/<\/a><\/p>\n<p>2.Click on &#8220;settings&#8221; and select &#8220;Mail Forwarding &amp; POP3\/IMAP&#8221;<\/p>\n<p>3.Select &#8220;enable POP for all mail&#8221; and &#8220;save changes&#8221;<\/p>\n<p>4.In the code below replace USERNAME &amp; PASSWORD with your respective GMAIL account username and its corresponding password!<\/p>\n<p>*\/<\/p>\n<p>public class Gmail_POP3 {<\/p>\n<p>&nbsp;<\/p>\n<p>static final String USERNAME = &#8220;<a href=\"mailto:cwiskykim@gmail.com\">cwiskykim@gmail.com<\/a>&#8220;;<\/p>\n<p>static final String PASSWORD = &#8220;<strong>cw123456<\/strong>&#8220;;<\/p>\n<p>&nbsp;<\/p>\n<p>public Gmail_POP3() {}<\/p>\n<p>&nbsp;<\/p>\n<p>public static void main(String[] args) {<\/p>\n<p>&nbsp;<\/p>\n<p>try {<\/p>\n<p>GmailUtilities gmail = new GmailUtilities();<\/p>\n<p>gmail.setUserPass(USERNAME, PASSWORD); \/\/ Gmail \uacc4\uc815 \uba54\uc77c\uc8fc\uc18c, \uc554\ud638<\/p>\n<p>gmail.connect();<\/p>\n<p>gmail.openFolder(&#8220;INBOX&#8221;);<\/p>\n<p>&nbsp;<\/p>\n<p>int totalMessages = gmail.getMessageCount();<\/p>\n<p>int newMessages = gmail.getNewMessageCount();<\/p>\n<p>&nbsp;<\/p>\n<p>System.out.println(&#8220;Total messages = &#8221; + totalMessages);<\/p>\n<p>System.out.println(&#8220;New messages = &#8221; + newMessages);<\/p>\n<p>System.out.println(&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#8220;);<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/Uncomment the below line to print the body of the message.<\/p>\n<p>\/\/Remember it will eat-up your bandwidth if you have 100&#8217;s of messages.<\/p>\n<p>\/\/gmail.printAllMessageEnvelopes();<\/p>\n<p>gmail.printAllMessages();<\/p>\n<p>&nbsp;<\/p>\n<p>} catch(Exception e) {<\/p>\n<p>e.printStackTrace();<\/p>\n<p>System.exit(-1);<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>}<\/p><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>GmailUtilities.java<\/p>\n<div>\n<table border=\"0\">\n<colgroup>\n<col \/><\/colgroup>\n<tbody valign=\"top\">\n<tr>\n<td>package gmail;\n<p>import com.sun.mail.pop3.POP3SSLStore;<\/p>\n<p>import java.io.File;<\/p>\n<p>import java.io.IOException;<\/p>\n<p>import java.io.InputStream;<\/p>\n<p>import java.util.Date;<\/p>\n<p>import java.util.Properties;<\/p>\n<p>import javax.mail.Address;<\/p>\n<p>import javax.mail.FetchProfile;<\/p>\n<p>import javax.mail.Flags;<\/p>\n<p>import javax.mail.Folder;<\/p>\n<p>import javax.mail.Message;<\/p>\n<p>import javax.mail.MessagingException;<\/p>\n<p>import javax.mail.Multipart;<\/p>\n<p>import javax.mail.Part;<\/p>\n<p>import javax.mail.Session;<\/p>\n<p>import javax.mail.Store;<\/p>\n<p>import javax.mail.URLName;<\/p>\n<p>import javax.mail.internet.ContentType;<\/p>\n<p>import javax.mail.internet.InternetAddress;<\/p>\n<p>import javax.mail.internet.MimeBodyPart;<\/p>\n<p>import javax.mail.internet.ParseException;<\/p>\n<p>&nbsp;<\/p>\n<p>public class GmailUtilities {<\/p>\n<p>&nbsp;<\/p>\n<p>private Session session = null;<\/p>\n<p>private Store store = null;<\/p>\n<p>private String username, password;<\/p>\n<p>private Folder folder;<\/p>\n<p>&nbsp;<\/p>\n<p>public GmailUtilities() {<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public void setUserPass(String username, String password) {<\/p>\n<p>this.username = username;<\/p>\n<p>this.password = password;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public void connect() throws Exception {<\/p>\n<p>&nbsp;<\/p>\n<p>String SSL_FACTORY = &#8220;javax.net.ssl.SSLSocketFactory&#8221;;<\/p>\n<p>&nbsp;<\/p>\n<p>Properties pop3Props = new Properties();<\/p>\n<p>&nbsp;<\/p>\n<p>pop3Props.setProperty(&#8220;mail.pop3.socketFactory.class&#8221;, SSL_FACTORY);<\/p>\n<p>pop3Props.setProperty(&#8220;mail.pop3.socketFactory.fallback&#8221;, &#8220;false&#8221;);<\/p>\n<p>pop3Props.setProperty(&#8220;mail.pop3.port&#8221;,\u00a0 &#8220;995&#8221;);<\/p>\n<p>pop3Props.setProperty(&#8220;mail.pop3.socketFactory.port&#8221;, &#8220;995&#8221;);<\/p>\n<p>&nbsp;<\/p>\n<p>URLName url = new URLName(&#8220;pop3&#8221;, &#8220;pop.gmail.com&#8221;, 995, &#8220;&#8221;,<\/p>\n<p>username, password);<\/p>\n<p>&nbsp;<\/p>\n<p>session = Session.getInstance(pop3Props, null);<\/p>\n<p>store = new POP3SSLStore(session, url);<\/p>\n<p>store.connect();<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public void openFolder(String folderName) throws Exception {<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ Open the Folder<\/p>\n<p>folder = store.getDefaultFolder();<\/p>\n<p>&nbsp;<\/p>\n<p>folder = folder.getFolder(folderName);<\/p>\n<p>&nbsp;<\/p>\n<p>if (folder == null) {<\/p>\n<p>throw new Exception(&#8220;Invalid folder&#8221;);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ try to open read\/write and if that fails try read-only<\/p>\n<p>try {<\/p>\n<p>&nbsp;<\/p>\n<p>folder.open(Folder.READ_WRITE);<\/p>\n<p>&nbsp;<\/p>\n<p>} catch (MessagingException ex) {<\/p>\n<p>&nbsp;<\/p>\n<p>folder.open(Folder.READ_ONLY);<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public void closeFolder() throws Exception {<\/p>\n<p>folder.close(false);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public int getMessageCount() throws Exception {<\/p>\n<p>return folder.getMessageCount();<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public int getNewMessageCount() throws Exception {<\/p>\n<p>return folder.getNewMessageCount();<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public void disconnect() throws Exception {<\/p>\n<p>store.close();<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public void printMessage(int messageNo) throws Exception {<\/p>\n<p>System.out.println(&#8220;Getting message number: &#8221; + messageNo);<\/p>\n<p>&nbsp;<\/p>\n<p>Message m = null;<\/p>\n<p>&nbsp;<\/p>\n<p>try {<\/p>\n<p>m = folder.getMessage(messageNo);<\/p>\n<p>dumpPart(m);<\/p>\n<p>} catch (IndexOutOfBoundsException iex) {<\/p>\n<p>System.out.println(&#8220;Message number out of range&#8221;);<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public void printAllMessageEnvelopes() throws Exception {<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ Attributes &amp; Flags for all messages ..<\/p>\n<p>Message[] msgs = folder.getMessages();<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ Use a suitable FetchProfile<\/p>\n<p>FetchProfile fp = new FetchProfile();<\/p>\n<p>fp.add(FetchProfile.Item.ENVELOPE);<\/p>\n<p>folder.fetch(msgs, fp);<\/p>\n<p>&nbsp;<\/p>\n<p>for (int i = 0; i &lt; msgs.length; i++) {<\/p>\n<p>System.out.println(&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8220;);<\/p>\n<p>System.out.println(&#8220;MESSAGE #&#8221; + (i + 1) + &#8220;:&#8221;);<\/p>\n<p>dumpEnvelope(msgs[i]);<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public void printAllMessages() throws Exception {<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ Attributes &amp; Flags for all messages ..<\/p>\n<p>Message[] msgs = folder.getMessages();<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ Use a suitable FetchProfile<\/p>\n<p>FetchProfile fp = new FetchProfile();<\/p>\n<p>fp.add(FetchProfile.Item.ENVELOPE);<\/p>\n<p>folder.fetch(msgs, fp);<\/p>\n<p>&nbsp;<\/p>\n<p>for (int i = 0; i &lt; msgs.length; i++) {<\/p>\n<p>System.out.println(&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8220;);<\/p>\n<p>System.out.println(&#8220;MESSAGE #&#8221; + (i + 1) + &#8220;:&#8221;);<\/p>\n<p>dumpPart(msgs[i]);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>public static void dumpPart(Part p) throws Exception {<\/p>\n<p>if (p instanceof Message)<\/p>\n<p>dumpEnvelope((Message)p);<\/p>\n<p>&nbsp;<\/p>\n<p>String ct = p.getContentType();<\/p>\n<p>try {<\/p>\n<p>pr(&#8220;CONTENT-TYPE: &#8221; + (new ContentType(ct)).toString());<\/p>\n<p>} catch (ParseException pex) {<\/p>\n<p>pr(&#8220;BAD CONTENT-TYPE: &#8221; + ct);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>\/*<\/p>\n<p>* Using isMimeType to determine the content type avoids<\/p>\n<p>* fetching the actual content data until we need it.<\/p>\n<p>*\/<\/p>\n<p>if (p.isMimeType(&#8220;text\/plain&#8221;)) {<\/p>\n<p>pr(&#8220;This is plain text&#8221;);<\/p>\n<p>pr(&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8220;);<\/p>\n<p>System.out.println((String)p.getContent());<\/p>\n<p>} else {<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ just a separator<\/p>\n<p>pr(&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8220;);<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public static void dumpEnvelope(Message m) throws Exception {<\/p>\n<p>pr(&#8221; &#8220;);<\/p>\n<p>Address[] a;<\/p>\n<p>\/\/ FROM<\/p>\n<p>if ((a = m.getFrom()) != null) {<\/p>\n<p>for (int j = 0; j &lt; a.length; j++)<\/p>\n<p>pr(&#8220;FROM: &#8221; + a[j].toString());<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ TO<\/p>\n<p>if ((a = m.getRecipients(Message.RecipientType.TO)) != null) {<\/p>\n<p>for (int j = 0; j &lt; a.length; j++) {<\/p>\n<p>pr(&#8220;TO: &#8221; + a[j].toString());<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ SUBJECT<\/p>\n<p>pr(&#8220;SUBJECT: &#8221; + m.getSubject());<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ DATE<\/p>\n<p>Date d = m.getSentDate();<\/p>\n<p>pr(&#8220;SendDate: &#8221; +<\/p>\n<p>(d != null ? d.toString() : &#8220;UNKNOWN&#8221;));<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ CONTENT<\/p>\n<p>pr(&#8220;CONTENT: &#8220;+ m.getContent());<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>static String indentStr = &#8221; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &#8220;;<\/p>\n<p>static int level = 0;<\/p>\n<p>&nbsp;<\/p>\n<p>\/**<\/p>\n<p>* Print a, possibly indented, string.<\/p>\n<p>*\/<\/p>\n<p>public static void pr(String s) {<\/p>\n<p>&nbsp;<\/p>\n<p>System.out.print(indentStr.substring(0, level * 2));<\/p>\n<p>System.out.println(s);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<fieldset><\/fieldset>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Gmail SMTP Server\ub97c \uc774\uc6a9\ud55c \uba54\uc77c\uc804\uc1a1 \uc608\uc81c (\ubb34\ub8cc SMTP &amp; Authentication) http:\/\/unionbaby.tistory.com\/category\/+%20Programer\/*%20java?page=2 + Programer\/* java Gmail, Authentication in JavaMail JavaMail 1.4.1:http:\/\/java.sun.com\/products\/javamail\/downloads\/index.html JAF 1.1.1: http:\/\/java.sun.com\/products\/javabeans\/jaf\/downloads\/index.html &nbsp; Gmail.java import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; import java.io.*; import java.util.*; import java.security.Security; public class Gmail { public static void main(String[] args) { Properties p = new Properties(); p.put(&#8220;mail.smtp.user&#8221;, &#8220;gmail_id@gmail.com&#8220;); p.put(&#8220;mail.smtp.host&#8221;, &#8220;smtp.gmail.com&#8221;); p.put(&#8220;mail.smtp.port&#8221;, &#8220;465&#8221;); p.put(&#8220;mail.smtp.starttls.enable&#8221;,&#8221;true&#8221;); p.put( &#8220;mail.smtp.auth&#8221;, &#8220;true&#8221;); p.put(&#8220;mail.smtp.debug&#8221;, &#8220;true&#8221;); p.put(&#8220;mail.smtp.socketFactory.port&#8221;, &#8220;465&#8221;); p.put(&#8220;mail.smtp.socketFactory.class&#8221;, &#8220;javax.net.ssl.SSLSocketFactory&#8221;); p.put(&#8220;mail.smtp.socketFactory.fallback&#8221;, &#8220;false&#8221;); Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); try { Authenticator auth = new SMTPAuthenticator(); Session session = Session.getInstance(p, auth); session.setDebug(true); \/\/session = Session.getDefaultInstance(p); MimeMessage msg = new MimeMessage(session); String message = &#8220;Gmail SMTP \uc11c\ubc84\ub97c \uc774\uc6a9\ud55c JavaMail \ud14c\uc2a4\ud2b8&#8221;; msg.setSubject(&#8220;Gmail SMTP \uc11c\ubc84\ub97c \uc774\uc6a9\ud55c JavaMail \ud14c\uc2a4\ud2b8&#8221;); Address fromAddr = new InternetAddress(&#8220;gmail_id@gmail.com&#8220;); msg.setFrom(fromAddr); Address toAddr = new InternetAddress(&#8220;paran_id@paran.com&#8220;); msg.addRecipient(Message.RecipientType.TO, toAddr); msg.setContent(message, &#8220;text\/plain;charset=KSC5601&#8221;); System.out.println(&#8220;Message: &#8221; + msg.getContent()); Transport.send(msg); System.out.println(&#8220;Gmail SMTP\uc11c\ubc84\ub97c \uc774\uc6a9\ud55c \uba54\uc77c\ubcf4\ub0b4\uae30 \uc131\uacf5&#8221;); } catch (Exception mex) { \/\/ Prints all nested (chained) exceptions as well System.out.println(&#8220;I am here??? &#8220;); mex.printStackTrace(); } } private static class SMTPAuthenticator extends javax.mail.Authenticator { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(&#8220;cwiskykim&#8221;, &#8220;cw******&#8221;); \/\/ Google id, pwd } } } &nbsp; &nbsp; &nbsp; GoogleTest.java import java.security.Security; import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class GoogleTest [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"ngg_post_thumbnail":0,"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[15],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5q9Zn-7g","jetpack-related-posts":[{"id":448,"url":"https:\/\/blog.box.kr\/?p=448","url_meta":{"origin":450,"position":0},"title":"[\ud38c]Java Mail \ubc1c\uc1a1 (GMail SMTP \uc774\uc6a9) example \uc608\uc81c","date":"2014-12-18","format":false,"excerpt":"java mail API\ub97c \uc774\uc6a9\ud558\uc5ec GMail\uc758 SMTP\ub97c \uc774\uc6a9\ud558\uc5ec \uba54\uc77c\uc744 \ubc1c\uc1a1\ud558\ub294 \uac83\uc5d0 \ub300\ud574 \uc544\uc8fc \uac04\ub7b5\ud558\uac8c \uc54c\uc544\ubcf8\ub2e4. \uba54\uc77c\uc744 \ubc1c\uc1a1\ud558\uae30 \uc704\ud574\uc11c\ub294 Java Mail API\uc640 GMail \uacc4\uc815\uc774 \ud544\uc694\ud558\ub2e4. (GMail SMTP\ub294 SSL\ub85c \uacc4\uc815 \uc778\uc99d\uc744 \ud574\uc57c \uc0ac\uc6a9\uc774 \uac00\ub2a5\ud558\ub2e4.) \ubc1c\uc1a1\ub418\ub294 \uba54\uc77c\uc758 \ud14d\uc2a4\ud2b8\ub294 HTML\uc774\uba70, UTF-8\uc774\ub2e4. Text\ub098 \ub2e4\ub978 \uce90\ub9ad\ud130\uc14b\uc744 \uc6d0\ud55c\ub2e4\uba74 \uc870\uae08 \uc218\uc815\ud558\uba74 \ub41c\ub2e4. \uae30\ub2a5\uc740 \ucca8\ubd80\ud30c\uc77c\uc774 \uc788\ub294 \uba54\uc77c\uacfc \uc5c6\ub294 \uba54\uc77c\ub9cc \uad6c\ubd84\ud558\uc5ec\u2026","rel":"","context":"In &quot;JAVA&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":164,"url":"https:\/\/blog.box.kr\/?p=164","url_meta":{"origin":450,"position":1},"title":"\ud504\ub85c\uc138\uc2a4 \uac04\uc758 \ud1b5\uc2e0","date":"2014-07-08","format":false,"excerpt":"\ud504\ub85c\uc138\uc2a4 \uac04\uc758 \ud1b5\uc2e0(IPC)\uc740 \ud504\ub85c\uc138\uc2a4 \uac04\uc5d0 \uc815\ubcf4\ub97c \uc8fc\uace0 \ubc1b\uc744 \uc218 \uc788\ub3c4\ub85d \ud558\ub294 \ud1b5\uc2e0 \uae30\ubc95\uc785\ub2c8\ub2e4. \ud504\ub85c\uc138\uc2a4 \uac04\uc758 \ud1b5\uc2e0 \ubc29\ubc95\uc740 \uc11c\ub85c \uac04\uc5d0 \uba54\uc2dc\uc9c0\ub97c \uc804\ub2ec\ud558\ub294 \ubc29\ubc95\uacfc \uacf5\uc720 \uba54\ubaa8\ub9ac\ub97c \uc774\uc6a9\ud558\ub294 \ubc29\ubc95 \uadf8\ub9ac\uace0 \ud074\ub9bd\ubcf4\ub4dc\ub97c \uc774\uc6a9\ud558\ub294 \ubc29\ubc95 \ub4f1\uc774 \uc788\uc2b5\ub2c8\ub2e4. 1. \ud504\ub85c\uc138\uc2a4 \uc0ac\uc774\uc758 \uba54\uc2dc\uc9c0 \uc804\ub2ec 1)\ub3d9\uc77c\ud55c \ud504\ub85c\uadf8\ub7a8\uc774 \uc5ec\ub7ec \uac1c \uc2e4\ud589 \uc911\uc77c \ub54c \uba54\uc2dc\uc9c0 \uc804\uc1a1 RegisterWindowMessage \uc774\uc6a9 \ud504\ub85c\uc138\uc2a4 \ub610\ub294\u2026","rel":"","context":"In &quot;MFC &amp; WINDOWS&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":790,"url":"https:\/\/blog.box.kr\/?p=790","url_meta":{"origin":450,"position":2},"title":"[scrap] MQTT \uc2a4\ud130\ub514 \ub178\ud2b8","date":"2015-05-17","format":false,"excerpt":"http:\/\/bcho.tistory.com\/864 \u00a0 MQTT \uc2a4\ud130\ub514 \ub178\ud2b8 \uc2a4\ud130\ub514 \ub178\ud2b8 - IBM\uc5d0\uc11c \ub9cc\ub4ec - FB \uba54\uc2e0\uc838\uac00 \uc774\uac78 \uc0ac\uc6a9. \uad6d\ub0b4 \ud1b5\uc2e0\uc0ac PUSH \uc11c\ubc84\ub3c4 \uc774\uac78 \uc0ac\uc6a9\ud568 - \uc77c\ub2e8 FB\uac00 \uc4f0\ub2c8, \ub3d9\ub0a8\uc544\uad8c Telco\uc5d0\uc11c \ud328\ud0b7 \uac78\ub9ac\ub294 \ubb38\uc81c\ub294 \uc5c6\uc744\ub4ef - Qos 0,1,2\ub85c \ud574\uc11c, 2 \uc758 \uacbd\uc6b0 message delivery\ub97c gurantee\ud568 - \uc800\uc804\ub825!! \uc774\uac8c \uc911\uc694. - XMPP\uc5d0 \ube44\ud574\uc11c \ud6e8\uc52c \uacbd\ub7c9.\u2026","rel":"","context":"In &quot;\uae30\uc220&quot;","img":{"alt_text":"","src":"http:\/\/cfile4.uf.tistory.com\/image\/22233D4C52FCA9770BF1E1","width":350,"height":200},"classes":[]},{"id":597,"url":"https:\/\/blog.box.kr\/?p=597","url_meta":{"origin":450,"position":3},"title":"[\ud38c][AngularJS] \ubc30\uc6b0\ub294 \ubc29\ubc95 &amp; \uae30\ubcf8 \uac1c\ub150 \uc7a1\uae30","date":"2015-02-02","format":false,"excerpt":"http:\/\/mobicon.tistory.com\/281 AngularJS\/Concept AngularJS\ub97c \ubc30\uc6b0\uae30 \uc704\ud574\u00a0\uc88c\ucda9\uc6b0\ub3cc \ud558\uba70 \uc77d\uace0, \ubcf4\uace0,\u00a0\ub4e3\uace0, \ucf54\ub529\ud574\ubcf8 \ucf54\uc2a4\ub97c \ub098\ub984 \uc815\ub9ac\ud574 \ubcf4\uc558\ub2e4. 1.\u00a0\uac1c\ub150\uc7a1\uae30 -\u00a0Angular's father\uc778\u00a0\ubbf8\uc2a4\ucf54\ub2d8\uc758\u00a0AngularJS \uc18c\uac1c \ub3d9\uc601\uc0c1\uc744 \ubcf8\ub2e4 : \ub2e8\uacc4\ubcc4\ub85c jQuery\uc640 \uc798 \ube44\uad50\ud558\uace0 \uc788\ub2e4 \u00a0 - Art of AngularJS\ub97c \ubcf4\uace0\uc11c \uc774\uc81c \ubc30\uc6cc\uc57c\ud560 \ud544\uc694\uc131\uc744 \ub290\uaef4\ubcf4\uc138\uc694. \uc774\uc81c \uc2dc\uc791\ud558\uc138\uc694. \u00a0 \u00a0\u00a0The Art of AngularJS from Matt Raible - AngularJS\uc758 \uc911\uc694 \uc694\uc18c\uc640 \uae30\ubcf8\uae30\ub97c\u2026","rel":"","context":"In &quot;JAVA&quot;","img":{"alt_text":"","src":"http:\/\/cfile29.uf.tistory.com\/image\/2161163B517694CB2CA7B5","width":350,"height":200},"classes":[]},{"id":379,"url":"https:\/\/blog.box.kr\/?p=379","url_meta":{"origin":450,"position":4},"title":"[\ud38c]\ube60\ub974\uac8c \ud6dd\uc5b4 \ubcf4\ub294 node.js","date":"2014-09-15","format":false,"excerpt":"http:\/\/bcho.tistory.com\/889 \ube60\ub974\uac8c \ud6dd\uc5b4 \ubcf4\ub294 node.js - #6 MongoDB \uc5f0\ub3d9 (mongo-native) \ud074\ub77c\uc6b0\ub4dc \ucef4\ud4e8\ud305 & NoSQL\/Vert.x & Node.js\u00a0|\u00a02014\/04\/03 23:49\u00a0|\u00a0Posted by\u00a0\uc870\ub300\ud611 \ube60\ub974\uac8c \ud6dd\uc5b4\ubcf4\ub294\u00a0node.js #6- mongo-native \ubaa8\ub4c8\uc744 \uc774\uc6a9\ud55c MongoDB \uc5f0\ub3d9 \uc870\ub300\ud611\u00a0(http:\/\/bcho.tistory.com Persistence\u00a0\uc5f0\ub3d9 node.js\ub294\u00a0DB\ub098\u00a0NoSQL\ub4f1\uc758 \uc5f0\ub3d9\uc744 \uc9c0\uc6d0\ud558\ub294\ub370,\u00a0\uc774 \uc5ed\uc2dc \ucca0\uc800\ud558\uac8c\u00a0non-blocking io\u00a0\ubc29\uc2dd\uc73c\ub85c \ub3d9\uc791\ud55c\ub2e4.\u00a0\uc989\u00a0db\u00a0\uc5f0\uacb0\u00a0socket\uc744 \uc5f4\uc5b4\uc11c\u00a0query\ub97c \ub358\uc838\ub193\uace0, query\u00a0\uacb0\uacfc\uac00 \uc624\uba74 \uc774\ubca4\ud2b8\ub97c \ubc1b\uc544\uc11c\u00a0callback\u00a0\ud568\uc218\ub85c \ucc98\ub9ac\ud558\ub294 \uc21c\uc11c\uc774\ub2e4. \uadf8\ub7ec\uba74 \uc5ec\uae30\uc11c\ub294 \uba87\uac00\uc9c0\u00a0persistence\u00a0\uc5f0\ub3d9 \ubc29\uc2dd\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\ub3c4\ub85d \ud55c\ub2e4.\u2026","rel":"","context":"In &quot;\ucc38\uace0\ub97c \uc704\ud55c \uc800\uc7a5\ubb3c&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":439,"url":"https:\/\/blog.box.kr\/?p=439","url_meta":{"origin":450,"position":5},"title":"[c++][stl] std::vector Copy \ubc29\ubc95","date":"2014-12-15","format":false,"excerpt":"\/\/ copy() \ub97c \uc774\uc6a9\ud55c \ubcf5\uc0ac \u00a0 destVector.resize((int)(sourceVector.size())); std::copy( sourceVector.begin(), sourceVector.end(), destVector.begin() ); std::copy( sourceVector.begin() + 2, sourceVector.begin() + 5, destVector.begin() ); \/\/ assign() \uc744 \uc774\uc6a9\ud55c \ubcf5\uc0ac\u00a0 \u00a0 destVector.clear(); destVector.assign( sourceVector.begin(), sourceVector.end() ); \/\/ \uc804\uccb4 \ubcf5\uc0ac destVector.assign( sourceVector.begin() + 1, sourceVector.begin() + 4 );","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/450"}],"collection":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=450"}],"version-history":[{"count":0,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/450\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}