メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバはVPS上に構築していた。 ・Ubuntu Server ・Postfix ・Dovecot ・spamAssassinと、BlackListの利用 Spam対策を行ってきたし、サーバ上でメールをトリガーにして各種プログラムを動かしたりしてきた。 メールサーバのメンテナンスは結構面倒くさくて、  ・Disk容量のチェック  ・不正アクセスのチェック  ・各種セキュリティパッチの適用 など、手間がかかる。 そこで、外部のサーバを利用することに…。 結構安くて使い勝手の良さそうなのが、「さくらのメールボックス」 3年契約で、3070円とな…。  メールアドレスは自分のだけなので、20GBまで利用可能!  (Gmailより大きいねぇ) ということで、早速契約。 アカウント設定を行って、既存のDNSを書き換える。WHOISも書き換えて完了。 SMTPとIMAPが利用できればOK。 ちょうど、GoogleがSPF設定していないと受信しないし、DKIMおよびDMARCに対応していないメールを弾くようになったので、対応しているのを確認。 さくらサーバ自体は、これまでお客さんのサーバとして何件も利用しているので、利用方法も難しくはない。  Webメールにも対応しているので、いざという場合にもありがたい。 ということで、各メールソフトの設定を変更。  PC(常時使用する3台)とタブレット、スマートフォンと台数は多いがそれ程手間はかからない。 問題は、旧サーバで送受信したメールの履歴だけれど、これはThunderbrdを使ってローカルに保存することで回避。  本当は、サーバtoサーバでMailboxに残そうとも考えたんだけど、古いメールはそれ程必要ないし、ローカルにバックアップしてあれば凌げるので、良しとする。 移行時にDNSの反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

LinuxでC#

Ubuntu上でC#を使う

Windows7/10にVisual Studio Communityを入れれば、すんなりと環境は構築できる。

でも、メインマシンがUbuntuなので、VMのWindowsを起動して、その上で動かすのが時間もかかって面倒なのですよ…。
 しかも、めったにWindowsを使わないため、起動するたびに更新の罠にはまって、使い始めるのに時間がかかりすぎるという状況。

そこで、Ubuntu上で、普通にコードがかければ楽じゃね?と思い探してみる。



コンソールアプリならOK

結果的には、コンソールならWindowsと何ら変りなく利用できることが分かった。

マイクロソフトのサイト

へ行けば、以下の手順が乗っている。

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list'
まずは、上記のリポジトリを追加

そして、以下のコマンドで.NET関係のインストール。

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.1.105

あとは、いつも使っているVisual studio codeで、マイクロソフト製の拡張機能を入れれば良い。

拡張機能も、ページの下の方に書かれている。
https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp


vscodeの拡張機能で、「c#」で検索すればすぐに見つかるはず。

でもって、入れればその他必要なものは、インストールしてくれる仕様だ。


実際に動かしてみる

まずは、適当な作業用ディレクトリで、プロジェクトを作成する。
$ cd tmp
$ dotnet new console -o myApp
これで、myAppというフォルダが掘られて、雛形ファイルがザザッと作られる。

Program.csという雛形が出来上がっているので、これを編集することになる。

この辺りの、ファイル・フォルダ構成がvisual studioと同じになっているのが、ある意味素晴らしい。


実行すると以下のようなメッセージが表示される。

$ dotnet new console -o myApp
テンプレート "Console Application" が正常に作成されました。
作成後のアクションを処理しています...
'dotnet restore' を myApp/myApp.csproj で実行しています...
  Restoring packages for /home/yoshimura/tmp/myApp/myApp.csproj...
  Generating MSBuild file /home/yoshimura/tmp/myApp/obj/myApp.csproj.nuget.g.props.
  Generating MSBuild file /home/yoshimura/tmp/myApp/obj/myApp.csproj.nuget.g.targets.
  Restore completed in 492.65 ms for /home/yoshimura/tmp/myApp/myApp.csproj.
正常に復元されました。
最後の「正常に復元されました」というのは、少々気持ち悪いw

vscodeで開いてみる。

別にHello Worldは無しでも良いのだけれど…。

しかも、このままDebug可能と来たもんだ!
もちろん、以下のコマンドで実行も可能。

$ dotnet run

これなら、visual studioなしでも、ちょろっと書いてテストするには充分。

何となくMicrosoftの本気度を垣間見た気がする。

コメント

このブログの人気の投稿

WPS Officeで日本語入力ができない

VirtualBoxでUSBから起動

Virtualboxとnvidiaドライバ