SmtpClientをSSL有効でメール送信する場合の注意点

SmtpClientクラスを用いて、メールを送信するプログラムがあるのだが、
どうもgmailをホストに指定した場合に動作しない。
設定値は以下の通り。

最初は何かしら設定が間違っているのだろうと思ったが、
下記のVBScriptでは問題なく送信ができる。
なので、設定値に間違いはなく、C#コードのコーディングミスと判断し、調査していた。

しかし、どうもミスらしき場所が見つからない。
エラーも「送信できませんでした」以上のことがでず、八方ふさがりとなった。

色々調べて、以下で解決した。

・ポートを465でなく587を用いる。

つまり、18行目あたりを以下のように修正し、問題は解消した。

どうやらこれは.NETの仕様で、
SmtpClientクラスはポート465をサポートしていないのだ。

SmtpClient.EnableSsl プロパティ
How can I send emails through SSL SMTP with the .NET Framework?

言われれば「なんだぁ」だが、VBScriptで送信できたことで、設定値を疑うことが遅れてしまった。
こういうことがあるから、MSDNはよく確認しなくては。

冬の軽井沢

既に寒い。
10月初めから既に寒かったけど、もうストーブなしで過ごすのはもう難しい。
来週、いや、もう今週か、今週スキー場が開くらしい。
おいおいもう冬か。秋とは何だったのか。

iOSのアップデートでPPTPが使えなくなったので、IPSecサーバーを構築中。
何度もめんどくさく成って挫折中。
LINUXで構築するより、なんかもう、IPSec機能付きルータ買った方が良い気がしてきた。

びっくりするぐらい最近は語る内容がない。
とりあえず、生存報告がてら、更新。

MyDNSの割当IPを定期的に更新(設定)する方法

以前の記事でVPN構築をしたとき、MyDNSについて触れることを予告していたので、書いておく。

一応、簡単にMyDNSが必要な理由をまとめておく。
VPNを構築して外部から自宅ネットワークにアクセスできるようにしても、
自宅のIPはプロバイダによって定期的に変わってしまう。
そのたびにイチイチ各機器の接続先IPを変えていては大変だし、
いざ外出先で気づいても変更後IPがわからないとどうしようもない。

そこで、IPと結びつくホスト名を取得する。それがDDNSだ。
ホスト名とIPを紐付けすることで、IPが変更されてもその変更後IPをホスト名に設定すれば、
引き続きホスト名からVPN接続ができるようになる。

そのDDNSサービスの1つがMyDNSである。
登録は簡単だし無料なので、上記リンクから画面に従えば良い。

さて、ここで「その変更後IPをホスト名に設定」と述べたが、
それは手動でやる必要がある。
しかし、できることなら自動でやりたい。

Windowsであれば、diceというアプリケーションを用いれば良い。
俺はMac環境なので上記方法は使えない。
おとなしく、以下のコマンドを実行する方法を取る。

<masterID>:と<password>の部分は自身の情報に変更する。
このアドレスにアクセスすればアクセス元IPがホスト名と紐づくので、curlコマンドでアクセスだけしている、という仕組み。

勿論手動でイチイチ起動するのは嫌なので、
Launchdで毎晩定期実行するように設定した。

LaunchdはMac版タスクスケジューラのようなものです。
このあたりで書いているのでご参考に。


新車を買いました。
引っ越し代金合わせて今月の出費は300万円ぐらいです。
ちょっと流石にきついかな。気持ち的に。

軽井沢移住

仕事の都合と自分の事情が絶妙にマッチした結果、8/1から軽井沢に移住した。
軽井沢というブランドに単純に憧れがあるし、この時期なら避暑になって丁度いい。
家賃が高そうなイメージがあったけど、東京に比べれば断然安い。
1SLDKの鉄筋コンクリートマンションに一人暮らし、さらに駐車場を別に借りるという贅沢をしているけど、それでも10万も行かない。
東京ならいくらかかるか、想像もしたくない。

ただ、ゴミの分類が面倒だ。
専用ごみ袋が必要だし、何より7時までに出せってなんだそれは。
夏季期間以外なら8時でもいいらしいが、東京の時は9時過ぎに出していたので結構堪える。
なので、まとめてごみ出しできる塵芥処理場を週一ぐらいのペースで使っている。
段ボールとはの資源ごみは普通のゴミ捨て場では受け付けてくれないので、もう全部塵芥処理場に持っていく生活になっている。

軽井沢は生活しにくいかと思っていたが、
スーパー(MATSUYAやTSURUYA)、コンビニがあるので何も不自由しない。
中軽井沢まで出ればラーメン屋も多いし、佐久平ぐらいまで行けば何でもある。

というか、Amazonがあるから本当に何も困らない。それを言っちゃあおしまいなんだけど。

机、椅子、本棚とかの家具は全てAmazonで揃えた。
Amazon便利すぎる。宅配業者さんいつもありがとうございます。
仕事で不在なのが申し訳なさすぎるので置き配してもらってもいいんですけど、まぁやってくれない誠実な業者が多いので中々。
そんなわけで、会社に送るという裏技を使いまくっているんですけどね。
会社今のところ俺しかいないし。
快適すぎるだろこれは。

TV買っていないので、NHK解約しなくちゃな。
ただ、調べると手順面倒なんですね。
完全に「全国民TVを持っている」という前提の制度になっているね。
地デジにしたのに、なんでBCASに課金という制度にしなかったんでしょうか。

めろんぶっくすとかが近くにないけど、まぁ通販あるのでそれも大丈夫。
というか、そこまで頻繁に行くところではないし。

まぁ、後は冬ですね。
スキーは楽しみだけど、寒さに耐えられるか、こうご期待。

生存報告

ブログを放置しすぎた。
とりあえず、以前ちらっと書いたHyper-V Server 2012 R2の構成方法についてでも書くか。
・・・と思ったけど、結局は下記リンクを観たほうが手っ取り早いんだよね。
Hyper-V ServerをGUIで使い、仮想マシンを作成してみる

一応、プロビジョニングもどきのScriptを書いてみた。
参考程度に。

実際、仮想マシンを立ち上げて遊んだりしているが、もっぱらの用途はファイルサーバーだ。
Hyper-V Serverは無料だがファイル共有機能はついているので、これだけで簡易なファイルサーバー用途は十分に満たせるのだ。


最近は仮想マシンとしてにWindows Server 2012 R2 評価版を入れ、ドメイン構成したりSharePointインストールしたりと無意味なことをしている。
技術的な進展はない。

作ろうとしていた書籍管理DBも面倒くさくて停滞中。
ASP.NETを勉強して、入力フォームちゃんと作ろうかしら。

外付けHDDに常用ファイル置いて、それを毎晩ファイルサーバーにバックアップしているんだけど、
もう外付けHDDやめてファイルサーバーを常用化したほうがいいのかねぇ。
なんだか無駄な構成に思えてきた。


あと、そろそろ軽井沢に転勤になる。
本当は来月だったんだけど、会社の都合で再来月になりそう。
住居契約済ませたあとなのに、なんというタイミング。

まとまりねぇなぁ。

BuffaloルーターでVPN環境を構築

なんとなく「大変なんだろう」という理由で敬遠していたVPN構築。
手持ちのBuffaloルータにVPN機能が搭載されていると今更知り、試してみたら一瞬で構築できてしまった。
試しに外から接続確認してみたら問題なく自宅サーバに接続できる。

使っているのはやや古いWZR-S900DHPというものなのだが、多分Buffalo機器なら他でもそんなに違わないと思うので、
構築の方法をメモしてみる。


・Buffaloルータ側の設定

  1. ルータの管理画面にログインする
    デフォルトならブラウザで192.168.11.1にアクセスし、admin/passwordでログインできる。
  2. 「詳細設定」を開く
    WZR-S900DHP_-_BUFFALO_AirStation
  3. グローバルIPアドレスを確認する
    「ステータス」→「システム」→「Internet」→「IPアドレス」から確認できる。
    WZR-S900DHP_-_BUFFALO_AirStation-1-1
  4. PPTPパススルーをONに設定する
    「セキュリティ」→「VPNパススルー」を開き、「PPTPパススルー」にチェックを入れ、「設定」をクリックする。
    WZR-S900DHP_-_BUFFALO_AirStation-2
  5. PPTPを設定する
    「Internet」→「PPTP」を開き、「PPTPサーバー機能」を「使用する」にチェックを入れる。
    他の項目は特に設定する理由がなければデフォルトのままで良い。
    WZR-S900DHP_-_BUFFALO_AirStation-3-1
  6. PPTP接続情報を設定する
    「PPTP接続ユーザーの編集」を開く。
    任意の「接続ユーザー名」「パスワード」を入力する。
    「拡張設定」は特に設定する理由がなければデフォルトのままで良い。
    最後に「新規追加」をクリックする。
    WZR-S900DHP_-_BUFFALO_AirStation-4

以上でルーター側の設定は完了である。
この状態でもうVPNが利用可能である。
分かる人は「手順3」で確認したIPに対し、「手順6」で設定したユーザー情報でVPN接続を試みてほしい。
プロバイダ等で規制されていないかぎり問題なく繋がり、外部からでも自宅ネットワークにアクセスできているはずである。

iPhoneで接続するときは以下のページを参考にVPN(PPTP)を設定すると良い。
iOS:VPN を設定する

ただし、このままだとグローバルIPでの接続になる。
即ち、(固定IPを契約していない限り)IPが変わってしまったときにアクセス不可になる。
これを防ぐためにはDDNSを利用すれば良い。

その利用方法は次回にまとめる。


紆余曲折あって、現在は東京都のウィークリーマンションに住んでいます。
東京の中心に住むと相当に便利ですね。
というか、Amazon Prime Nowが便利すぎる。
注文して1時間、は別途代金かかるけど、即日配送なら無料だし結局2時間程度でつくし、凄いですね。
ますます引きこもりが捗りますねぇ。

Windows ServerにGoogle Driveをインストールするときの注意点

以前の記事で触れたまま放置していたので一応書いておく。

Google DriveはWindows Server系は正式サポートしていないが、普通にWindowsクライアントのインストールが可能だ。
しかし、インストールした後、いざ認証しようとしてアカウントを入力すると以下のようになる。

GD

どうやらCookieが無効なようなので、有効化しよう。
・・・としても、これが何のブラウザなのかさっぱりわからないのでどうしようもない。

調べてみると、どうやらEdgeではなくてInternet Exploereとして動作しているようだ。
そこで、IEのインターネットオプションの設定を変更してみたが、どうもうまくいかない。

最終的に、
IEのhttps://accounts.google.com/を信頼済みサイトに登録する
という方法で解決はした。

要するにインターネットオプションのどこかでどこか設定不備があったのだろう。
しかし、どこだったのか。Cookie系の項目は全て有効にしていたと思うのだが。
どうしても腑に落ちないが、とりあえずこれで認証ができるようになったので、メモしておく。

日本本帰国

ようやく、日本に正式に帰ってくることができた。
3年間のシンガポール生活、得られたものはあっただろうか。
まぁ、多分ない。
得難い経験かも知れないが、それを大切と捉えるかは人それぞれだ。

経歴に箔が付いたぐらいかね。とりあえず。

さて、そんなこんなでしばらくは東京暮らし。
3ヶ月ぐらい後にまた転勤(国内)予定なので、ネット環境の整備ができないのはちょっと辛い。
VPN構築したいよぉ・・・

最初の2週間は秋葉原付近に仮住まい。
メロンブックスでも行ってきますか。

Googleドライブはシンボリックリンクに対応しきれていない。

ファイルのバックアップのために、毎晩ローカルのファイルを自宅ファイルサーバーにコピーするように設定している。
しかし、自宅ファイルサーバーと言っても所詮は安物サーバーなので、完全に安心はできない。
そもそもローカルもサーバーも同じ「自宅」になる以上、自宅がどうにかなるともうだめである。

そこで、自宅ファイルサーバー(今はお試しを兼ねてWindows Server 2016 Previewを利用)の内容をさらにGoogleドライブにコピーするように設定しようとした。
結果としてできなかったのだが、それまでの過程を記述する。

  • 試行1 – Googleドライブにファイルコピーする
    単純にGoogleドライブのクライアントをサーバーにインストールし、
    ローカルのGoogleドライブ内にファイルをコピーしようと考えた。

    しかし、ファイルは1T近くあるため、こうするとバックアップのためだけに余分にもう1TBも
    容量をとられる結果となる。
    よって、これは却下した。

  • 試行2 – WevDavでGoogleドライブに接続する
    有料ソフトが多く、使ってみると実際はローカル上にファイルをおいているものもあり、却下した。
  • 試行3 – Googleドライブ内に同期したいファイルのシンボリックリンクを作成する。
    シンボリックリンクならファイルの実態は1つのままだし、
    作成も容易なので、コレでうまくいくと思った。

    実際、Googleドライブ内にシンボリックリンクを作成したところ、
    アップロードが実行された。

    これで問題解決、と思ったが、そううまい話ではなかった。
    初回同期後、ファイルを変更したり、追加、削除しても、Googleドライブには一切同期されなかった。
    やはり、ファイルの実態がないため、同期が働かないようだ。
    よって、これも却下となった。

  • 試行4 – Googleドライブをファイルサーバーパスに設置する。

    多分、これが最善策です。
    ただ、ファイルサーバーのファイル階層が変わるのが嫌なので敬遠している。
    バックアップスクリプトも変えなきゃだし・・・
    まぁ、今夜にでもやってみようかな。


ちなみに、Windows ServerにGoogleドライブをインストールすると、実はログインで躓く。
そうそう需要のある操作ではないかもしれないが、このあたりは今度書いておこう。

MacでChrome拡張「FastestTube」が使えなくなったので、使えるようにした。

YouTubeの動画をダウンロードするChrome拡張FastestTubeが2月下旬あたりから使えなくなった。
理由は開発者のFacebookに掲載されているが、どうやらChromeのブラックリストに掲載されてしまったらしい。

回避方法が同じくFacebookに掲載されていたので、行ってみたところ、問題なく適用できたのでその方法をメモする。
なお、7Zipというアプリを使うので、手順中でWindowsを使った。
crxファイルを展開できるアプリがあればMacでもいいんだけど、ちょっち見つかっていない状態。


  1. FastestTubeのcrxファイルをダウンロードする
    公式ページから入手可能なので、crxファイルをダウンロードする。
    スクリーンショット 2016-03-01
  2. WindowsPCにcrxファイルを移動させる
  3. WindowsPCに7Zipをインストールする
  4. 7Zipでcrxファイルを展開する
    普通のフォルダになります。
  5. 展開したフォルダごとMacに移動させる
    2016-03-01
  6. Chromeで開発者モードでFastestTubeを読み込む
    Chromeを起動し、「設定」→「拡張機能」を開く。
    「デベロッパモード」にチェックを入れる。
    「パッケージ化されていない拡張機能を読み込む」をクリックする。
    移動したフォルダを選択し、「選択」をクリックする。
    スクリーンショット 2016-03-01

以上でFastestTubeが使えるようになる。
まぁ、あくまで回避方法ではあるけど、しばらくはこれで使おう。

スクリーンショット 2016-03-01