XML스키마 › Ipv6의특징 › 웹서비스개발S/W › jetty › FortuneCookies › JavaMailSendExam
- java mail을 이용하여 메일 보내기 예제
import java.util.Date; import java.util.Properties; import java.util.StringTokenizer; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; public class ZZZ { public static void main(String[] args) throws Exception{ String host = "smtp.gimslab.com"; String fromAddr = "from_addr@gimslab.com"; String fromName = "프롬"; String toAddr = "to_addr@gimslab.com"; String toName = "투투"; String subject = "java 에서 보냅니다. java mail"; String content = "안녕하세요 java mail"; String filePathList = "D:/data/도우.gif;D:/xxx/mail.hwp"; String fileNameList = "도우.gif;구글해킹.hwp"; Properties props = new Properties(); Session session = Session.getDefaultInstance(props, null); props.put("mail.smtp.host", host); props.put("mail.smtp.auth", "true"); // 인증이 필요한 경우 // 첨부파일 확인 StringTokenizer stFileName = new StringTokenizer(filePathList, ";"); StringTokenizer stFileView = new StringTokenizer(fileNameList, ";"); int nNameCnt = stFileName.countTokens(); int nViewCnt = stFileView.countTokens(); if(nNameCnt != nViewCnt){ log("첨부파일 경로정보와 이름정보가 서로 다릅니다."); log("실제파일명 토큰 수/첨부파일명 토큰 수 = " + nNameCnt + "/" + nViewCnt); throw new Exception(); } MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(fromAddr, fromName, "EUC-KR")); message.setRecipient(Message.RecipientType.TO, new InternetAddress(toAddr, toName, "EUC-KR")); message.setSubject(subject, "euc-kr"); message.setSentDate(new Date()); MimeMultipart mp = new MimeMultipart(); MimeBodyPart mbp1 = new MimeBodyPart(); mbp1.setContent(content, "text/html;charset=euc-kr"); mp.addBodyPart(mbp1); // 파일 첨부 while(stFileName.hasMoreElements()){ MimeBodyPart mbp2 = new MimeBodyPart(); FileDataSource fds = new FileDataSource(stFileName.nextToken()); mbp2.setDataHandler(new DataHandler(fds)); mbp2.setFileName(new String(stFileView.nextToken().getBytes("KSC5601"), "8859_1")); mp.addBodyPart(mbp2); } message.setContent(mp); // 인증이 필요한 경우 Transport transport = session.getTransport("smtp"); transport.connect(host, "USER_ID", "PASSWORD"); transport.sendMessage(message, message.getAllRecipients()); transport.close(); // 인증이 필요없는 경우 단순히 아래 한줄만으로 가능 //Transport.send(message); } }