脱力系備忘録BloG ホーム »サーバー

ヤフーメールのSMTPをコマンドで直接操作する  

以前Gmailを使ったやり方を記載しておりましたが、いつのまにかセキュリティーが厳しくなって、ユーザーパスワードではサーバーにログインできなくなってました。
「安全性の低いアプリからのアカウントへのアクセス」を「許可」してもログインできない。
たぶん、2段階認証でアプリごとのパスワードを取得すればログインできるような気がしますが、それは試していません。
そういうわけで、以下の説明をGmailからヤフーメールに書き換えました。(2018/7/15)



外部メールサーバーのSMTPをPHPで操作する必要があって、その動きを知るためヤフーメールの送信サーバーをコマンドラインで操作して勉強してみた備忘録。
なお、ここで使用するヤフーメールはアメリカヤフー(yahoo.com)です。HAHAHA。
理由は一応TLS接続のことも書いておきたかったのですが、日本のヤフーはSSL接続しかできないみたいだからです。
以上余談。


ヤフーメールのSMTPは「SMTP over SSL」という仕組みで動いているので、自分の環境にOPENSSLが入っていることを前提とします。


さて、それではヤフーメールのSMTPに直接アクセスしてみましょう。
なお、緑色の文字が自分で入力する文字で、ピンク色がサーバーの返答です。

※メール本文の入力終了を意味する「.」を認識しないときがあるので、「-crlf」を付けておく。
> openssl s_client -crlf -connect smtp.mail.yahoo.com:465

CONNECTED(00000003)
~ずらずらと表示される~
220 smtp.mail.yahoo.com ESMTP ready


もしくは

> openssl s_client -starttls smtp -crlf -connect smtp.mail.yahoo.com:587
CONNECTED(00000003)
~ずらずらと表示される~
250 STARTTLS


ehlo localhost
250-smtp403.mail.sg3.yahoo.com Hello localhost [***.***.***.***])
250-PIPELINING
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-SIZE 41697280
250 AUTH PLAIN LOGIN XOAUTH2 OAUTHBEARER XYMCOOKIE

auth login
334 XXXXXXXXXXXX
base64でエンコードしたヤフーID(xxxx@yahoo.com)
※日本のヤフーの場合は「@」の前部分のみ。xxxx@yahoo.co.jp なら xxxx のみ。
334 XXXXXXXXXXXX
base64でエンコードしたユーザーパスワード
235 2.7.0 Authentication successful
mail from:xxxx@yahoo.com
250 2.1.0 Sender <xxxx@yahoo.com> OK
rcpt to:送信先@メール.アドレス
250 2.1.5 Recipient <送信先@メール.アドレス> OK
data※ここからメールデータの入力開始
354 Ok Send data ending with <CRLF>.<CRLF>
subject:Test Mail ※件名
(改行) ←忘れないように!
This is test mail ※本文
. ※このピリオドでメールデータの入力終了

250 OK , completed
quit
221 Service Closing transmission

送信先アドレスにメールが届いているか確認してみましょう。
このやり方の肝は、ログインメールアドレスとパスワードをBASE64でエンコードするということでしょうか。
エンコードせずに打ち込んでもエラーになりますのでご注意を。

category: サーバー

RewriteRuleが引数を処理できない問題  

基本動作ではREWRITERULEは引数を処理できない。
(例)
http://test.domain.com/rewritename.php?a=100
このURLをリライトさせた場合、

以下のパラメータの場合は
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^rewritename.php changename.php

http://test.domain.com/changename.php
となって、引数部分が欠落してしまう。

そこで[QSA]オプションを利用すると、
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^rewritename.php changename.php [QSA]

http://test.domain.com/changename.php?a=100
となって引数が引き継がれる。

category: サーバー

ソフトバンクのネットワーク名が面白い  

自分が運営するサイトログに、ふと目に止まったドメイン名があった。
「jp-t.ne.jp」というもの。
なんだろ?と思いWHOISで調べてみたら、「メールサービス8」というネットワーク名だった。

なんだこれ?どこのネットワーク?
と思い調べてみたら、「ソフトバンク」だった。
で、さらに調べてみたら

JP-C.NE.JP
メールサービス1

JP-D.NE.JP
メールサービス2

JP-H.NE.JP
メールサービス9

JP-K.NE.JP
メールサービス3

JP-N.NE.JP
メールサービス4

JP-Q.NE.JP
メールサービス5

JP-R.NE.JP
メールサービス6

JP-S.NE.JP
メールサービス7

JP-T.NE.JP
メールサービス8

とあるそうな。
これらのドメインの登録日付が1999年9月28日となっているので、ソフトバンクの前身「J-PHONE」の時に取られたようです。

J-PHONE。適当すぎです。

category: サーバー

プロフィール

お問い合わせ

最新記事

最新コメント

▲ Pagetop