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 {
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);
}