読者です 読者をやめる 読者になる 読者になる

備忘録

備忘録

C# で Mailgun や SendGrid などを使ってメールを送信する

Ⅰ. はじめに

メール配信サービスのAPIをラップした FluentEmail というライブラリの紹介です。
.NET Standard で作られているためクロスプラットフォームで動作します。

各サービスの API ドキュメントには HttpClient や RestClient 等を使って Web API を直接呼び出すサンプルがあります。
しかし、メールを送信する為に各サービスごとに Web API ドキュメントを読み、理解し、実装する手間がかかります。

FluentEmail はこれらの問題を解決してくれます。

2017/04/23 時点で、
SMTP, Mailgun, SendGrid に対応しています。

Ⅱ. FluentEmail のサンプル(Mailgunの例)

1. NuGet から FluentEmail.Mailgun をインストールする

f:id:kagasu:20170423123802p:plain

2. サンプルコード
public async Task<bool> SendEmail()
{
  Email.DefaultSender = new MailgunSender(
      "mydomain.tld",
      "key-********************************");

  var email = Email
    .From("from@mydomain.tld")
    .To("to@gmail.com")
    .Subject("件名")
    .Body("本文");

  var response = await email.SendAsync();
  return response.Successful;
}

nginx で autoindexの文字化けを治す

Ⅰ. はじめに

nginx の autoindex を on にしただけだと以下のように文字化けします。
これを治す方法です。

Ⅱ. やり方

1. charset utf-8; を追加する
server {
  listen 80;
  root /var/www/html/hoge;
  index index.html;

  location / {
    autoindex on;
    charset utf-8;
  }
}
2. 設定をリロードする
# CentOS 7
systemctl reload nginx

# CentOS 6
service nginx reload

BCD を修正する

Ⅰ. はじめに

f:id:kagasu:20170422233942p:plain
BCD(Boot Configuration Data)(ブート構成データ)を修正する方法です。
WindowsLinuxデュアルブートした状態から Grub を消して Windows のみブートさせる場合などに必要な作業となります。

Ⅱ. やり方

1. ブート可能な Windows メディアを作成する
2. 1 で作成したメディアをブートする
4. 以下のコマンドを入力
# バックアップを取る
$ bcdedit /export c:\backup
$ attrib c:\boot\bcd -h -r -s
$ ren c:\boot\bcd bcd.old

# BCD を修正する
$ bootrec /rebuildbcd

以上です。

プロセスセキュリティまとめ

Ⅰ. はじめに

OpenProcess などで使われるアクセス権のフラグまとめです。

Ⅱ. まとめ

PROCESS_ALL_ACCESS 0x1FFFFF
PROCESS_CREATE_PROCESS 0x80
PROCESS_CREATE_THREAD 0x2
PROCESS_DUP_HANDLE 0x40
PROCESS_QUERY_INFORMATION 0x400
PROCESS_SET_QUOTA 0x100
PROCESS_SET_INFORMATION 0x200
PROCESS_TERMINATE 0x1
PROCESS_VM_OPERATION 0x8
PROCESS_VM_READ 0x10
PROCESS_VM_WRITE 0x20
SYNCHRONIZE 0x100000

仲介DLLを作成する

Ⅰ. はじめに

仲介DLLを作成する方法です。
DLL Proxy や DLL Wrapper とも呼ばれています。

Ⅱ. やり方

こちらを使います。
https://github.com/mavenlin/Dll_Wrapper_Gen

1. ファイルを自動生成する
python Generate_Wrapper.py hoge.dll
2. ソリューションファイルを開き、コンパイルする
3. オリジナルのファイル名を ori_hoge.dll に変更する
4. 同じ場所にコンパイルしたDLLをコピーする

以上です。