【Java】メール接続~受信までのやり方 サンプルコードあり
メールとの連携は業務システムの開発において必要不可欠なものとなっています。
最近はSlackやLINEなどのコミュニケーションツールとの連携も多いですが、
日本の会社ではメールが根強くなってしまっています。
なので、日本においてはメールの需要はまだまだ続きそうです。
改めてJavaでのメール接続~受信までをめもしておきます。
POP3でのやり方になります。
コピペレベルでできると思いますので、以下をご活用ください。
※今回は、簡単な説明で納めておくため、テキストメール(添付なし)を例にさせていただきます。 HTMLメールは今後記載させていただきます。
/ 接続~受信BOXのOPENまで Properties prop = new Properties(); // POP3サーバー(受信サーバー)の【IPアドレス】と【ポート】を設定 prop.setProperty("mail.pop3.host", 【IPアドレス】); prop.setProperty("mail.pop3.port", 【ポート】); // メールアカウントの【ユーザID】と【パスワード】を設定 Authenticator authenticator = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(【ユーザID】, 【パスワード】); } }; Session session = Session.getInstance(prop, authenticator); Store store = session.getStore("pop3"); store.connect(); // 受信ボックスの設定。【INBOX】固定 Folder inbox = store.getDefaultFolder().getFolder("INBOX"); // 読み込みだけの時はFolder.READ_ONLYでOK // inbox.open(Folder.READ_ONLY); // メールサーバーから削除する場合は、Folder.READ_WRITEにする必要があります inbox.open(Folder.READ_WRITE); Message[] messages = inbox.getMessages(); // 受信メールの件数分ループ for (Message message : messages) { // 件名 String subject = MimeUtility.decodeText(message.getSubject()); System.out.println("subject: " + subject); // 差出人 Address[] from = message.getFrom(); String mailAddress = getAddress(MimeUtility.decodeText(from[0].toString())); System.out.println("mail_address: " + mailAddress); // 受信日時 Date receivedDate = message.getSentDate(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); String dateTimeText = sdf.format(receivedDate); System.out.println("receivedDate: " + dateTimeText); Part part = message; String msgText = ""; // メール本文を【part.getContent().toString()】で取得 if (part.isMimeType("text/plain")) { // テキストメール msgText = part.getContent().toString(); }else if (part.isMimeType("multipart/*")) { // HTMLメール // ToDo } System.out.println("----------\n" + msgText + "----------\n"); } inbox.close(true); // 読み込みだけの時はfalaeでOK store.close();
【LINEMO】PayPay ソフトバンクまとめて支払い
SEめもとは関係ありませんが、PayPayとLINEMOユーザにとってうれしい報告です。
LINEMOでは「ソフトバンクまとめて支払い」が利用できるようになりました~~~。 パチ!パチ!パチ!パチ!
これでLINEMOのキャリアは、「PayPay」へチャージが簡単にできるようになりました。
他の「PayPay」へチャージする方法は以下があります。
ATMチャージ
セブン銀行、ローソン銀行のATMからチャージすることができる。
→デメリット:いちいちセブンイレブンまたはローソンへ行く必要がある。
PayPay銀行
PayPayが運用している、ネット銀行の預金からチャージができる。
→デメリット:PayPay銀行の口座を作る必要があるため、面倒。
ヤフーカード
ヤフーカードを登録し、チャージができる。
→デメリット:ヤフーカードを作る必要があり、面倒。
ギフトカード
友達などからPayPayギフトカードをもらい、チャージできる。
→デメリット:都合の良いときにギフトカードなんて持ってない。
ヤフオク!
売上金からチャージができる。
→デメリット:そもそもヤフオク!をやっていないので、売上金がない。
友だちから残高を送ってもらう
友達などが保有しているPayPayの残高からチャージができる。
→デメリット:いちいち友達へ請求する必要があるため、急用の場合に困る。
ソフトバンクまとめて支払いとは?
スマートフォンなどで購入したデジタルコンテンツやショッピングなどの代金、アプリなどの購入分を、月々のスマートフォンの利用料金とまとめてお支払いできる決済サービスです。
【Node.js】LESSをCCSに変換
lessだと一度less.jsで変換する必要がある。 軽量なlessであれば問題ないが、大きいlessだとパフォーマンスに響く。 そこで、前もってlessをccsへ変換するやり方をメモしておきます。
Node.jsインストール
lessの公式ドキュメントを参照すると、以下が必要。
$ npm install -g less
Node.jsがない方は、以下からダウンロード。
インストールはそのまま次へ、次へで問題なし。 インストール完了後、dosで以下のコマンドを実施。
$ npm install -g less
ccsへ変換
Lessコンパイラ(lessc)を用いて、Less ファイルをコンパイルします。 下記の例では、style.lessファイルをstyle.cssファイルにコンパイル(変換)しています。
$ lessc style.less style.css
また、minifiedされたCSSファイルを作成することができます。 プラグインが必要なため、以下のコマンドからless-plugin-clean-cssプラグインをインストール。
$ npm install -g less-plugin-clean-css
インストール完了後、以下のコマンドを実施すると、 minifiedされたCSSファイルを作成することができます。
$ lessc --clean-css styles.less styles.min.css
【Linux】Linuxディストリビューションとは
今回は様々な「Linuxディストリビューション」についてメモを残します。
ディストリビューションとは?
そもそもディストリビューションとは・・・
「流通」
「配布」
という意味で、 Linuxの配布形態のことです。
本来、Linuxという言葉はLinuxカーネルのことを意味していますが、 カーネルだけではOSとして手軽に使うことはできません。
そこで、Linuxを利用しやすいようにアプリケーションなどをパッケージにして すぐに使える状態にしたものを
「ディストリビューション」と呼びます。
Linuxにはいろいろな ディストリビューションがあるのです。
代表的なLinuxディストリビューション 代表的なディストリビューションを いくつかご紹介しましょう。
Red Hat Enterprise Linux (RHEL)
アメリカのRedHat社が開発した 商用向けのLinuxディストリビューションです。
クライアントPC用途ではなく 大規模システムのサーバーに利用されています。
Fedora
FedoraはRedHat社が 支援しているディストリビューションです。
RHELは商用向けで有料なのに対し Fedoraは無料で使うことができます。
Fedoraは次世代のRHEL向けの 検証用ディストリビューションとしての役割があり、
実際にFedoraで検証された 多くの新しい技術がRHELに採用されています。
Debian
Debianは 世界中の有志が集結して作り上げた、
100%フリーで使うことができる Linuxディストリビューションです。
さまざまなCPU上での動作サポートと 数万にもおよぶ膨大なアプリケーション数が特徴で、 多くの企業のシステムに採用されています。
CentOS
CentOSはRHELのクローン(複製)OSで RHELの商用部分を取り除いたディストリビューションです。
Fedoraのように RHELの実験的要素を含んだOSとは異なり、
安定性も比較的高く、 商用でも使われる機会も増えています。
Ubuntu
Debianをベースに作られた 世界的な人気を持つディストリビューションです。
使いやすいデスクトップで 初心者にも抵抗なく使えるのが特徴ですが、
Debianと同じく 多くの企業のシステムにも使われています。
【ssh】公開鍵認証 設定~接続まで
環境
今回は以下の環境でのメモ。
◆サーバー
CentOS Linux release 7.4.1708
⇒既にインストール済みの「OpenSSH」で設定。
◆クライアント
Windows 7 Professional
⇒「RLogin」を使用して接続。
鍵の作成
①ssh-keygen
の実行
サーバー側で以下のコマンドを実行し、鍵を作成。
※ログイン者は、sshで接続する際のユーザとする。(今回は、「hoge」とする)
$ ssh-keygen -t rsa -b 4096
-t:鍵の種類を指定します。 rsa を指定すると、SSHプロトコルバージョン2のRSA鍵が作成されます。公開鍵暗号方式は主にRSAが使用されています。
-b:鍵のsize(bit)を指定します。2048bit以上なら問題ない強度ですが、より強固にする為に今回は、4096bitを指定します。
②パスフレーズの設定
秘密鍵に設定するパスフレーズの入力を求められるので、2回入力します。
このパスフレーズは秘密鍵の使用時(SSHログイン時)に必要であり、接続先の端末には送信されません。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
③authorized_keys
を作成
上記までを実行すると、秘密鍵と公開鍵が作成される。
# id_rsa.pub`を`authorized_keys` にリネーム。
$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
# 所有者以外のアクセスを許可しないよう設定。
$ chmod 600 ~/.ssh/authorized_keys
接続
~/.ssh/id_rsaをどうにかしてクライアントへ転送します。
※私は「RLogin」で、事前にパスワード認証で接続させ、SFTPでファイル転送しました。こうすれば、パスワード認証を禁止にした際の確認用にもなる。
RLoginの設定
「RLogin」を起動し、以下の設定後に接続。
※「RLogin」を持っていない人は、以下からダウンロード。 http://nanno.dip.jp/softlib/program/rlogin_x64.zip
- プロトコル:ssh
- ホスト名:サーバーのIPアドレス
- TCPポート:ssh(22)
- ログインユーザ名:hoge
- パスフレーズ:②で入力したもの
- SSH認証鍵:ファイルパスをid_rsaに設定
- デフォルト文字セット:UTF-8
コマンドが打てる状態になれば、接続成功です。
注意
今回は「ファイアーウォール」の設定を省きましたが、
ポート:22のデフォルトは、許可になっていると思います。
接続がうまくいかない場合は、「ファイアーウォール」を疑ってください。