ともさんのHP >プロブラミング >自作JavaLibrary >JAVAでメール送信
メールを送信するJAVAclass
メールを自動送信するためのクラスを作りました。
最近「ゴミの日はいつだったかなぁ」と調べるのもめんどくさくて、部屋にゴミが溜り気味。
そこで、日々の予定とデータベースに入れておいて、毎朝携帯に今日の予定(ゴミだし日など)を自分に知らせるようにしました。
メールを送信するために作ったのが下記のクラスです。
ヤフーメール用にしてあります。自前のURLを持っているので、このURLを使えばよいのですが、独自URLのアドレスでメールを出そうとすると、SSLで暗号化したパスワードを送信しなければならないので断念しました。
そこで、暗号化の必要がないヤフーメールのアカウントをこのプログラム用に取得しました。
下記ソース中のパスワードやIDは実在しないものですので、念のため。
ヤフーメールアカウントを用いるなら、このクラスでそのまま動くと思います。
実行プログラムは、設定時刻になると、予定の入ったデータベースを読み込んでデータを取得し、このクラスにデータを渡してメールを送信するように作ってあります。
ネット上の情報を参考に作りました
ソースですが、いつものようにネット上のたくさんの諸先輩方のものを参考にさせていただきました。いつもありがとうございます。
なぜか、ネット上のソースはパスワードを使用しない文例ばかりなので、ちょっと探すのに苦労しました。
必要なもの
JavaMailとJAFが必要です。
下記からダウンロードしてクラスパスを通しましょう。
私の場合は、javaのフォルダ C:\Program Files\
Java
楽天 \jdk1.6.0_07\jre\lib\ext
activation.jar、mail.jarとlibフォルダを置いただけでOKでした。
JavaMail
JAF
以下ソースリストです。
package tomojavalib.net;
import java.io.UnsupportedEncodingException;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMail {
/**
* @param args
*/
public static void main(String[] args) {
SendMail sm = new SendMail();
//あて先のアドレス
String to = "atesaki@totomo.net";
//件名
String subject = "試験です";
//内容
String text = "こんにちは";
//送信
sm.send( to , subject , text );
}
public void send(String to,String subject, String text )
{
//smtpサーバー名(ヤフーメール用)
String smtpserver = "smtp.mail.yahoo.co.jp";
String popserver = "pop.mail.yahoo.co.jp";
Properties ppts=new Properties();
ppts.put("mail.smtp.host", smtpserver ); // SMTPサーバセット
ppts.put("mail.smtp.auth", "true" );
ppts.put("mail.host", popserver ); // popサーバーセット
ppts.put("mail.smtp.port", String.valueOf("587"));//smtpポート番号(ヤフーメール用)
// JavaMailのデバッグモード
//ppts.put("mail.debug", "true");
// メールセッションの作成
Session session=Session.getDefaultInstance(ppts,null);
MimeMessage mms=new MimeMessage(session);
try {
// to
mms.setRecipients(Message.RecipientType.TO, to );
// from(ヤフーメールのアドレス、送信者名)
InternetAddress iads=new InternetAddress("akaunto@yahoo.co.jp","ともさん");
mms.setFrom(iads);
// subject
mms.setSubject( subject ,"SJIS");
// text
mms.setText( text ,"SJIS");
//送信
Transport transport = session.getTransport("smtp");
//ヤフーメールのアカウントとパスワードをセット
transport.connect(null,"akaunto","pasuwa-do");
transport.sendMessage( mms,mms.getAllRecipients());
} catch (UnsupportedEncodingException e) { e.printStackTrace();
} catch (MessagingException e) { e.printStackTrace();}
return;
}
}
最終更新日: 2017-01-18 09:33:15
ともさんのHP >プロブラミング >自作JavaLibrary >JAVAでメール送信
ツイート