・コンパイルコマンド
set CLASSPATH=C:\java_Project\SendMail\javamail-1.4.5\mail.jar;C:\java_Project\SendMail\jaf-1.1.1\activation.jar;
javac SendMail.java
・同一フォルダ内にjavamail-1.4.5とjaf-1.1.1を置く
・パスワードを記載
import java.security.Security;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.UnknownServiceException;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Multipart;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
public class SendMail {
private Session session;
public SendMail() {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
/* property set */
Properties props = System.getProperties();
props.setProperty("mail.smtp.host","smtp.gmail.com");
props.setProperty("mail.smtp.socketFactory.class",SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback","false");
props.setProperty("mail.smtp.port","465");
props.setProperty("mail.smtp.socketFactory.port","465");
props.put("mail.smtp.auth","true");
session = Session.getDefaultInstance(props,new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("sgr.ukase@gmail.com","PassWord");
}
});
}
public boolean send(String email,String title,String body) {
boolean sendCheck = true;
try {
MimeMessage mimeMessage = new MimeMessage(session);
/* 送信元メールアドレスと送信者名を指定 */
mimeMessage.setFrom(new InternetAddress("sgr.ukase@gmail.com","送信者欄に表示する名前指定","iso-2022-jp"));
/* 送信先メールアドレスを指定 */
mimeMessage.setRecipients(Message.RecipientType.TO,email);
/* メールのタイトルを指定 */
mimeMessage.setSubject(title,"iso-2022-jp");
/* メールの内容を指定 */
mimeMessage.setText(body,"iso-2022-jp");
// related
Multipart relatedPart = new MimeMultipart("mixed");
// alternative
MimeBodyPart alternativeBodyPart = new MimeBodyPart();
Multipart alternativePart = new MimeMultipart("alternative");
alternativeBodyPart.setContent(alternativePart);
relatedPart.addBodyPart(alternativeBodyPart);
// text mail
MimeBodyPart textBodyPart = new MimeBodyPart();
textBodyPart.setDataHandler(new DataHandler(new TextBinaryDataSource(
"gmail経由でi.softbank.jp向けメール送信テスト[:1025:][:0105:]".getBytes(),
"utf-8", "plain", Emoji.Mode.SOFTBANK)));
textBodyPart.setHeader("Content-Transfer-Encoding", "base64");
alternativePart.addBodyPart(textBodyPart);
// html mail
MimeBodyPart htmlBodyPart = new MimeBodyPart();
htmlBodyPart.setDataHandler(new DataHandler(new TextBinaryDataSource(
"<HTML><BODY>gmail経由でi.softbank.jp向けメール送信テスト[:1025:][:0105:]</BODY></HTML>".getBytes(),
"utf-8", "html", Emoji.Mode.SOFTBANK)));
htmlBodyPart.setHeader("Content-Transfer-Encoding", "base64");
alternativePart.addBodyPart(htmlBodyPart);
// inline image
MimeBodyPart imageBodyPart = new MimeBodyPart();
relatedPart.addBodyPart(imageBodyPart);
// set related
mimeMessage.setContent(relatedPart);
/* 送信日付を指定 */
mimeMessage.setSentDate(new Date());
/* 送信します */
Transport.send(mimeMessage);
} catch (Exception e) {
e.printStackTrace();
sendCheck = false;
}
return sendCheck;
}
public static void main(String[] args) {
SendMail send = new SendMail();
send.send("sgr.ukase@gmail.com","メールタイトル","メール本文");
}
}
0 件のコメント:
コメントを投稿