Search

'전체 글'에 해당되는 글 92건

  1. 2016.05.03 JavaMail 로 Gmail 보내기
  2. 2013.04.03 FCKEditor IE10 에서 실행 안될때 고치는 방법
  3. 2013.01.05 WatchService 코드 정리

JavaMail 로 Gmail 보내기

Java/오류해결 2016. 5. 3. 13:31 Posted by 퓨어레드

메일 보내기

@Override

public void send (String toAddr, String subject, String content)
{
   final BaseSetting baseSetting = settingSv.getBaseSetting ();

   // javamail lib 이 필요합니다.
   class MyAuthentication extends Authenticator
   {
      PasswordAuthentication pa;

      public MyAuthentication ()
      {
         pa = new PasswordAuthentication (baseSetting.getCommonEmail (), baseSetting.getCommonEmailPasswd ());  //ex) ID:cafe24@cafe24.com PASSWD:1234
      }

      public PasswordAuthentication getPasswordAuthentication ()
      {
         return pa;
      }
   }

   String host = baseSetting.getSmtpAddr ();              //smtp mail server
   String from = baseSetting.getCommonEmail ();                  //sender email address
   String to = toAddr;                        //receiver email address

   if (StrLib.isEmptyStr (baseSetting.getSmtpAddr ()) || StrLib.isEmptyStr (baseSetting.getCommonEmail ()) || StrLib.isEmptyStr (baseSetting.getCommonEmailPasswd ()))
      return;;

   Properties props = new Properties ();
   props.put ("mail.smtp.host", host);
   props.put ("mail.smtp.auth", "true");
   props.put ("mail.smtp.port", String.valueOf (baseSetting.getSmtpPort ()));

   if (baseSetting.getSmtpPort () == 997 || baseSetting.getSmtpPort () == 465 || baseSetting.getSmtpPort () == 587)
   {
      props.put ("mail.smtp.socketFactory.port", String.valueOf (baseSetting.getSmtpPort ()));
      props.put ("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
      props.put ("mail.smtp.socketFactory.fallback", "false");
      props.put ("mail.smtp.starttls.enable","true");

      props.put ("mail.smtp.user",baseSetting.getCommonEmail ());
   }

   Authenticator auth = new MyAuthentication ();
   Session sess = Session.getInstance (props, auth);

   try
   {
      Message msg = new MimeMessage (sess);
      msg.setFrom (new InternetAddress (from));
      InternetAddress[] address = {new InternetAddress (to)};
      msg.setRecipients (Message.RecipientType.TO, address);
      msg.setSubject (subject);
      msg.setSentDate (new Date ());

      // Multipart 객체 생성
      MimeMultipart multipart = new MimeMultipart ();

      MimeBodyPart part = new MimeBodyPart ();

      // 부가적인 해더 추가
      /**********************************************************/
      msg.setHeader ("MIME-Version" , "1.0" );
      /**********************************************************/

      // 메세지 Part 추가 S
      /**********************************************************/
      part.setContent (content, "text/html;charset=UTF-8");
      part.removeHeader ("Content-Transfer-Encoding");

      // Encoding 타입 추가..
      /**********************************************************/
      part.addHeader ("Content-Transfer-Encoding", "base64");
      /**********************************************************/

      multipart.addBodyPart (part);
      /**********************************************************/
      // 메세지 Part 추가 E

      msg.setContent (multipart);

      Transport.send (msg);
   }
   catch (MessagingException mex)
   {
      mex.printStackTrace ();
   }
}

'Java > 오류해결' 카테고리의 다른 글

JavaMail 사용시 501 Syntax error 해결방법  (0) 2012.05.02

'Web > JavaScript' 카테고리의 다른 글

JavaScript urlencode  (0) 2012.04.25
객체의 모든 어트리뷰트를 출력한다.  (0) 2012.04.18

WatchService 코드 정리

Java/NIO 2013. 1. 5. 12:18 Posted by 퓨어레드
package kr.purred.nioWatch.main;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
import java.nio.file.WatchEvent.Kind;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;
import java.util.concurrent.TimeUnit;

public class Program
{

	/**
	 * @param args
	 */
	public static void main (String[] args)
	{
		WatchService watchService = null;
		Path path = null;
		
		try
		{
			path = Paths.get ("P:/Dev/Java/Sample/NIO/nioWatch/src/kr/purred/nioWatch/main");
			
			watchService = FileSystems.getDefault ().newWatchService ();
			
			path.register (watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE);
			
			while (!Thread.interrupted ())
			{
				// 와치 키를 가져오고 큐에서 키를 제거
				WatchKey key = watchService.poll ((long) 1, TimeUnit.SECONDS);
				
				if (key != null)
				{
					for (WatchEvent<?> watchEvent : key.pollEvents ())
					{
						// 미처리 이벤트 수
						System.out.println ("WatchEvent Count : " + watchEvent.count ());
						
						// 이벤트 종류를 가져온다.
						Kind<?> kind = watchEvent.kind ();
						
						// OVERFLOW 이벤트를 처리한다.
						if (kind == StandardWatchEventKinds.OVERFLOW)
							continue;
						
						System.out.println (kind);
						
						WatchEvent<Path> pathWatchEvent = (WatchEvent<Path>) watchEvent;
						
						Path fileName = pathWatchEvent.context ();
						
						System.out.println (fileName.getFileName ());
					}

					System.out.println ("키 Reset");
					
					boolean vaildKey = key.reset ();
					
					if (!vaildKey)
						break;
				}
				else
				{
					System.out.println ("감시중 ...");
				}
			}
			
			watchService.close ();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		catch (InterruptedException e)
		{
			e.printStackTrace();
		}
	}

}