インターネット

Perl で UTF-8 のメール件名を正しく送る

概要

メールの件名や表示名は、MIME対応ライブラリに文字列として渡します。独自のエンコード処理を重ねず、ヘッダー用APIを使います。

実施例

use Email::MIME;

my $mail = Email::MIME->create(
  header_str => [
    From    => 'sender@example.com',
    To      => 'recipient@example.com',
    Subject => '日本語の件名',
  ],
  attributes => { content_type => 'text/plain', charset => 'UTF-8' },
  body_str => '本文です。',
);

注意点

送信前に実在する宛先ではなくテスト用メールボックスで、件名・本文・添付の表示を確認します。

参考: 公式ドキュメント

続きを読む

Linux で、あるドメインの MX レコードを調べる方法

あるドメインで運用されているトップのメールサーバ(ルートのメールサーバ、つまり外部と通信する大元のメールサーバのこと)を調べるには、次のようにコマンドを打てばよい。 nslookup -type=mx amazonaws.com 上の例では amazonaws.com のトップのメールサーバ、つまり Amazon Web Services(AWS)の MX レコードを調べている。preference = 10 などのフィールドは、そのサーバの(通信の)優先度を表す。値が等しい場合は優先度は同じ、値が大きくなるほど優先度は低くなる。
続きを読む

IP アドレスのサブネットと CIDR の対応 (RFC 1878)

ひと昔前までは IP アドレスといえば、IPアドレス(例:192.168.0.1)とサブネットマスク(例:255.255.255.0)の組み合わせで表記するのが一般的であった。今でもウィンドウズや Mac でも固定(静的/スタティックともいう) IP アドレスをマシンに割り振るときは 192.168.0.1 と 255.255.255.0 などの数値を入力するから過去形のものでもないかもしれない。

続きを読む

Perl で、ブラウザから送られてきたデータを CGI.pm を使わずに処理する方法

最も原始的な例は以下のようになるだろう。今さらだけど、知っておいて損はないかもしれない。

HTTP プロトコルの場合、クライアントからサーバにデータを送る方法は POST メソッドか GET メソッドと仕様で定義されているから、POST の場合と GET の場合の2つのパターンを考えてデータを受け取ってあげればよい。

続きを読む

Perl で、画像のサムネイルを作成してブラウザから表示させる方法

以下のサンプルファイルを image.cgi と名前を付けて保存、アクセス権を chmod +x image.cgi とかして ブラウザから https://yourname.com/image.cgi とかにアクセスすればよい。 注意点としては、このスクリプトは画像しか表示できないことである。これと一緒に HTML ファイルを表示しようと思っても、HTTP プロトコルの仕様上不可能である。なぜかというと HTTP プロトコルを通して画像を表示する場合は、すでにこのスクリプトが HTTP ヘッダとして Content-type: image/jpeg を最初に出力してブラウザが受け取っているからで、このスクリプトの中で同時に(画像を表示した後に) HTML 文書を表示させようとて Content-type: text/html を出力(print "Content-type: text/html\n\n)してもブラウザは受け付けてくれないのである。 #!/usr/bin/perl use GD;
続きを読む

PHP で、HTTP クライアントを作る方法

PHP で、HTTP クライアントを作る方法をまとめてみた。以下の2通りがある。

PHP では fopen でサイトにアクセスできてしまうから、前者の方法が一番シンプルだといえるだろう。ユーザー名とパスワード付きの基本認証が施してあるサイトやさらに凝ったことをしたければ、CURL を使うのがよい。

続きを読む
インターネット を購読