nDiki : SMTP

SMTP - Simple Mail Transfer Protocol

2010年12月26日 (日)

Twitter への写真投稿を再び Flickr

rimage:/nDiki/Flickr/5293272376.jpg

Twitter への写真投稿は写ツ(はてなフォトライフ)から始めて、Flickr とフィード投稿サービスの組み合わせを使うようになり、その後携帯百景を使うようになった。 携帯百景を使うようになってからは、ほぼ携帯百景がメインに。 やはり写真に文字が入るというのが楽しくて。

しかしここ最近うまく投稿されなくてちょっとストレス。 Twitter に投稿されないだけでなく、携帯百景自体にアップロードされない。 Gmail を疑って別の SMTP サーバ経由にしたら駄目だった写真が成功したので、設定を切り替えたんだけれど、結局また駄目になったり。 携帯百景のサーバが不調なのか、メール送信の問題なのか、写真の問題なのかよくわからない。

残念だけれど携帯百景は諦めて、また Flickrアップロードすることにしよう。 Flickr -> FeedBurner -> Twitter という以前に設定して今も有効になっている流れがあるんだけれど、2009年6月30日から Flickr でも Flickr2Twitter という Flickr から直接する Tweet するサービスが開始しているので、これからはこちらを使うようにしよう。

スマートフォンからは Flickr2Twitter 専用メールアドレスへ写真を添付したメールを送ることでアップロードと同時に Tweet させることができる。

なおアップロードした写真はデフォルトで Only You (Private) になるように設定してあるんだけれど、Flickr2Twitter でもこれが適用されてしまうようだ。 そのままだと、Flickr 上で非公開なのに 短縮 URL 付き Tweet が流れるというヘンテコリンなことになる。

Flickr へのメールアップロードの際にアップロードメールアドレスの @ の前に +public をつけたメールアドレスに送ると Anyone (Public) 指定できるのだが、試してみたところ Flickr2Twitter でも有効であることを確認。 Flickr2Twitterメールアドレスが example2twitter@photos.flickr.com の場合

  example2twitter+public@photos.flickr.com

に送ると公開になる。Tweet を流す時は必ず公開にするので、このアドレスをアドレス帳に登録。

FeedBurner 経由と違ってタイムラグなく Tweet されるのでいいね。

携帯百景アップロードした際には、文字の入った画像をダウンロードして Exif データ設定後 Flickrアップロードするという作業をしていたのだけれど、それが不要になるので手間も軽減される。

今後はこのラインでいこう。

今日のさえずり: オイルヒーターの運用場所を台所にしてみるテスト

rimage:/nDiki/Flickr/5293215504.jpg

2010年12月26日

[ 12月26日全て ]

2012年1月6日 (金)

POP3 しか提供されてないので hMailServer で Windows にローカル IMAP サーバ立てた

デスクトップ Windows PC 上でメールを送受信している時は社内で POP3 しか提供されていなくても問題なかったんだけれどノート PC をあわせて使うようになったら、こちらでメール閲覧できなくてちょっと不便してた。 POP3 サーバ上に数日残すようにしておいて両方の端末で受信するというありがちなやり方はイケてないのでローカルに IMAP サーバ立てることにした。

今回は艦が Windows デスクトップ PC なので Windows 用の IMAP サーバからセレクト。

選んだのは hMailServer。

バージョン 4 までは GPL、バージョン 5 以降はオープンソースではなくなったが free product として提供されている。

POP3 サーバからメールを POP してきてローカルのデータベースに保存し IMAP4 プロトコルでのアクセスを提供してくれるサービスとして動いてくれる。SMTP サーバ機能も持っている。データストアとしては MySQLPostgreSQL なども選択できるが、パーソナルユースなら embedded されている Microsoft SQL Server が使えるので手間いらずである。

実際使ってみたけれど GUI ベースで特に迷うことなく設定ができ、すぐに使い始めることができた。メール関係のサーバを Linux とかで立てる時は結構神経が磨り減るものだがストレスセットアップできた。ローカルにあった MH 形式のメールを数万通 SylpheedIMAP 経由でつっこんだけど今のところ順調。いい感じ。

導入手順ノート

  1. 【インストールする】
    1. hMailServer-5.3.3-B1879.exe をダウンロードする。
    2. ダウンロードしたファイルを実行しインストールを行う。
      1. 途中 Administrator のためのパスワード設定を要求されるるので、決めて入力する。
  2. 【ドメインを設定する】
    1. hMailServer Administrator が起動し Connect ダイアログが開くので localhost を選択して [Connect] ボタンを押す。
    2. Welcome の [Add domain] からドメインを追加する。パーソナルユースでメールボックス的に使う分には SMTP で受信する必要が無いので正式なドメイン名である必要無し。ただし '.' が含まれている必要がある。[General]-[Domain] にドメイン名を入力し [Enabled] をチェック。
  3. 【アカウントを作成する】
    1. ドメインを追加すると hMailServer Adiministrator の左側のペインのツリーにそのドメインのノードが表示される。そのノードの下の Accounts を選択して [Add] を押し自分用のアカウントを追加する。
      1. [General]-[Address] にアカウント名を設定する。「アカウント名@ドメイン名」が IMAP 接続する時の ID になる。
      2. [General]-[Password] にパスワードを設定する。IMAP 接続する時のパスワードになる。
      3. [General]-[Enabled] をチェックする。
      4. [External accounts] で [Add] を押し、POP3 受信設定する。実際にメールが届いているサーバからの受信設定をここにする。取得間隔は5分とか適宜設定する。
  4. IMAP を有効にする。】
    1. [Settings]-[Protocols] で IMAP がチェックされていることを確認する。

これで OK。

あとは同じホスト上の MUA からは IMAP サーバとして localhost を指定して設定した ID とパスワードで受信設定を行えば OK。 送信については hMailServer を通さずに普通に送信するように設定し、送信したメールIMAP 上の Sent フォルダ等に保存するようにしておく。

別のノート PC 等の MUA からは IMAP サーバとして hMailServer を立てている Windows PC のホスト名(等接続できる名前)を指定して同様に設定。

これで hMailServer が定期的にメールを POP3 にて受信してくれるので、あとは各 MUA から hMailServer に接続してメールを読めばよい。IMAP なので既読管理やフォルダ管理なども一元的にできる。

その他 hMailServer にはルールを設定して IMAP フォルダ振り分けしたり、迷惑メールフィルタやウイルスフィルタ設定したりできるので、必要なら設定するとよさそげ。

[ 1月6日全て ]

2013年6月17日 (月)

Android でのメーラーを K-9 Mail から Gmail に変更

そのうちAndroid の標準 Gmail アプリの使い方を説明することになりそうなので、自分でも久しぶりに使っておこうかなと思い MTAK-9 Mail から Gmail に変更してみることにした。

メール自体は全て Gmail に集約しているのに K-9 Mail を使っていたのは、当初 Android の標準 Gmail アプリが From の変更ができなかったから。なので From を切り換えて使えるように K-9 Mail にアカウントを2つ作成して「受信は同じ Google アカウントから IMAP で」「送信はそれぞれの From 設定と SMTP サーバから」とちょっと変態設定で使っていたのである。 で Gmail で重要判定されたメールのみを Android 端末にプッシュさせる設定とかをして運用していた。

しかし今は標準 Gmail アプリでも From の切り換えができてきちんとそれぞれ設定した SMTP サーバ経由で送ってくれるし、Gmail 自体にタブ/カテゴリ機能がついてモバイル端末で大切なメールを優先して見られるようにとシフトしてきているので、もう標準 Gmail アプリでいいんじゃないかなと。

しばらく Gmail のフィルタを鍛えなおしたりしてチューニングしてみる。


[ Android アプリレビュー ]

今日のさえずり: 停電明けの PC 起動で HOS を思い出すなど

2013年06月17日

[ 6月17日全て ]

2013年8月23日 (金)

今日のさえずり: 昔は大学の DNS サーバIP アドレス暗記してあったのだが。

2013年08月23日

  • 07:51 テトリスモンスター、ブロック勝手に落ちてこないって昨日の朝書いたけど、本番に入ったら普通に落ちてきた。
  • 07:59 テトリスモンスター、昨日2時間とかそれぐらいやって、既視感あって、色違いのモンスターだらけになってきたところでもういっかなって感じになった。
  • 09:12 さっきテトリスモンスターをアンインストールしたんだけれど、そういえばまだユーザーサポートまわりどうなってるか、ヘルプしかチェックしてなかったよ……。
  • 09:44 前を歩いている人がシモジマの紙袋持っていて和む。
  • 11:26 昨日ぐらいから IFTTT つまってるなーと思って今サイト見にいったらメンテナンス中ページになってた。
  • 11:28 あ、サイインページ復活。
  • 13:01 「お腹すいてる時、言ってね。」 (@ キッチンひまわり(移動販売)) http://4sq.com/13KkBxj
  • 18:40 mixiコミュニティプリインストールした。 http://bit.ly/19O465V
  • 19:47 iOS アプリの問い合わせ機能の動作確認でメール設定してないと駄目らしくて、Gmail アプリしか使ってなかったのでメール設定。Gmail から IMAP 受信するのにアプリケーション固有パスワード発行したり、SMTP サーバだけ別設定したりと超手間だった。
  • 19:48 @li_saku お疲れさまでした。ブランク期間中 mixi も使ってみてね。
  • 21:52 帰ろうと思ったけど Windows Update再起動を見届けてからにする。 (@ 株式会社ミクシィ (mixi, Inc.)) http://4sq.com/16CNN7r
  • 23:21 アレ。 Wi-Fi + フレッツ光がつながらなくなった。
  • 23:23 OCN の問題か?
  • 23:27 OCN + フレッツ光、とりあえず /etc/resolv.conf で nameserver 8.8.8.8 にしたら普通にアクセスようになった。やはり DNS か。
  • 23:32 ルータDNS 設定の方 8.8.8.8 に変更した。これで iPod touch からもつながるようになった。
  • 23:49 OCN のサイト http://www.ocn.ne.jp/ に行って「障害」でページ内検索したら1箇所「適応障害だが、休職すべきか?【メンタルヘルス】」がマッチした。
  • 23:58 Google Public DNS のページあるんだ。 https://developers.google.com/.../
  • 23:59 @taxer9 お役に立てて幸いです!
  • 24:00 昔は大学の DNS サーバIP アドレス暗記してあったのだが、さすがにもう忘れた。
[ 8月23日全て ]

2013年9月23日 (月)

今日のさえずり: MIME::Parser 相変わらずインタフェースがわかりにくい

[ 9月23日全て ]

2013年9月26日 (木)

最近メール関連ではまり続けているとか【日記】

IFTTT + HootSuiteHootSuite 障害で動かなくなった。

IFTTT + Gmail に変更。URL 短縮も自前でやる必要があるのでフィード側で対応したものの、Gmail 側に bot 疑惑をもられたのか「送信メールが reject される」「Gmail ログイン時に CAPTCHA 入力を求められる」「Android での Google アカウント設定も一度強制的に無効化された」などとなり、ban の危険性が出てきたので停止。

→ かわりに IFTTT の Mail チャネルを使おうかと。Mail チャネルだとそのアドレスにしか受信できないので、受信したら自動的に別のアドレスに配送するプログラムを書くことにする。さくらのレンタルサーバでのプログラム実行方法を確認。

IFTTT で Mail チャネルに送った場合 text/plain なパートはボディ中の URL が変なクリックトラッカーの URL に置き換えられているので使えないことが判明。text/html パートの方を使わないと駄目ぽ。ということで Perl スクリプトで「Email::MIME で parse」「HTML::TreeBuilder で該当箇所を抽出」「Email::Sender::Transport::SMTP::TLS」でメール送信するようにした。IFTTT での trigger が foursquare の時と feed の時で Email チャネルから送信される HTML 構造が変わるなんて……。組み合わせ別にテンプレートが違うのか。

→ 配送できるようになったけれど IFTTT からうまく送られない。再 activate しても PIN すら届かない。別のメールアドレスにすると PIN が届く(数時間後だったりすぐだったり)ので、窓口にしたいメールアドレスが利用不可になっているか(テスト中にエラーを返してしまっていて使えない判定されたとか?)、IFTTT の方の配信が詰まっているのかよくわからない状態。プログラムができたのにそもそも送られてこないとは。

→ という作業をしている間に放置していた postmaster に3万通ぐらい cron のログがたまってたのに気がつく。Gmail で受信しておくようにするかと Mail Fetcher 設定。そうしたら10数時間後ぐらいから、同じ Gmail アカウントに設定してあった Mail Fetcher を巻き込んで全部「確認中」で止まってフェッチしてくれなくなってあばば。急いで postmaster の Mail Fetcher 設定を外す。数時間後に他のフェッチが再開し始めてほっと一安心。

→ イマココ。

[ 9月26日全て ]

2014年1月17日 (金)

iPad 2 に家族共有アカントを設定して FaceTime 端末にする

image:/nDiki/Flickr/12003901324.jpg

以前から iPad 2 を家電話的に使いたいと思っていたのと、家族共有しているんだけれどある程度ネットサービス等にサインインして使いたいと思っていたので、昨日 iOSSkype使ってみたのを機にきちんと設定してみることにした。

前提として以下のように利用できるのが目標

  • パスコードロックは有効にしておいて基本自分がいる時に使うようにする。
  • ビデオ通話についてはパスコードロックがかかっていても応答は許可したい(自分が iPad 2 にかけられるように)。

1. アカウント名を決める

これが一番時間のかかる作業。

  • family ほにゃららとか shared ほにゃららとか露骨に「家族共有」的な名前にはしない。
  • 今後各サービスで同じのを取っていけるようにある程度ユニーク。
  • 人名っぽい。
  • 愛着がもてる。
  • プロフィールアイコンが作りやすい。

ような名前で。一晩考えたり、花言葉とか見たり、Google 検索してあまり使われていないか確認したり、海外人名辞典サイト見たりして決定。

以下便宜上 'XXX' と記述。

2. メールアドレスを用意する

いつもの手順で。

  1. メーラー用に Gmail を使えるようにする。
    1. Google アカウント (XXX@gmail.com) を取得する。
    2. Google+ プロフィールの公開範囲をできるだけ絞る(無効化してもいいけど今後有効じゃないと使えないサービスがあるかもしれないので残しておく)。
    3. 普段使っているメールアドレスへのメール転送設定をする。
  2. 自分のドメイン上でメールアドレス (XXX@example.com) を発行する(これが家族共用アカウント各種登録でメインで使うメールアドレスとなる)。
  3. Gmail から上記メールアドレス (XXX@example.com) で送受信できるように設定する(SMTP・POP関連設定)。
  4. Google アカウントの予備のメールアドレスに上記メールアドレス (XXX@example.com) を設定する。

3. 家族共有の iPad 2 で FaceTime を設定する

  1. 連絡先に自分のメインのメールアドレスを登録しておく。
  2. FaceTime を使えるように機能制限を外してしておく。
    1. [設定] - [一般] - [機能制限] - [許可] - [FaceTime]
  3. FaceTime 着信用連絡先として家族共有メールアドレス (XXX@example.com) を設定する。
    1. [設定] - [FaceTime] - [FACETIME着信用の連絡先情報] にメールアドレス (XXX@example.com) を追加。
  4. FaceTime 着信用のメールアドレスや連絡先を勝手に変更できないようにしておく。
    1. [設定] - [一般] - [変更の許可] - [アカウント] を「変更を許可しない」に設定。

iPod touch 5th から/への発着信を確認。

これで別の自分の iOS 端末から iPad 2 へ FaceTime で発信して、通話できるようになった(パスコードアンロック不要で)。また連絡先に登録してある人へのみ iPad 2 から発信できるようになった(ただし要パスコードアンロックなのであまり使わないはず)。

できれば連絡先に登録していない人からの着信はできないようにしておきたいのだけれど、その設定は無いみたい。残念。

Skype

Skype もインストールして、Skype 名 XXX で登録し iPod touch 5th と Xperia GX から/への発着信も確認。

ただし FaceTime と違って「Skype を起動しておく必要がある」「着信時にパスコードロックを解除する必要がある」ということで前提の目標は達成できなさそう。できれば回線契約をしている Android 端末の Xperia GX からも通話したいので Skype で運用できればいいんだけれどね。Wi-Fi が無いところからはテザリング経由で iPod touch 5th からかけるしかないかな。

[ 1月17日全て ]

2014年2月28日 (金)

Email::Sender::Transport::SMTP::TLS を使って Perl スクリプトからメール送信

TLS と認証が必要な SMTP サーバ経由でメールを送信する以前書いたスクリプトをちょっと整理した。標準入力からメッセージ本文を受けとって送信できるように機能を切り出し。

メールでコンテンツを投稿できるサービスにメールを投げる時用。

標準入力で受け取った本文を Email::MIME でメールの形式に変換して、Email::Sender::Simple を使って送信。transpot として Email::Sender::Transport::SMTP::TLS を使う。なお、今 Email::Sender::Transport::SMTP::TLS の Pod ドキュメントをみたら今後は Email::Sender::Transport::SMTPS の方がお薦めと書いてあったのでその方が良いのかも。

 #!/usr/bin/perl

 use warnings;
 use strict;
 use utf8;
 use open IN => ':utf8';
 use open ':std';

 use Email::MIME;
 use Email::Sender::Simple qw(sendmail);
 use Email::Sender::Transport::SMTP::TLS;

 eval {

   my $message;
   {
     local $/ = undef;
     $message = <>;
   }

   my $subject = "sendXXX: $message";
   $subject = substr($subject, 0, 32 - 3) . '...' if length($subject) > 32;

   my $new_mail = Email::MIME->create(
     header_str => [
       From    => 'me@example.com',
       To      => 'post@example.com',
       Cc      => 'me@example.com',
       Subject => $subject,
     ],
     attributes => {
       content_type => 'text/plain',
       charset      => 'UTF-8',
       encoding     => '8bit',
     },
     body_str => $message
   );

   sendmail(
     $new_mail,
     {
       from      => 'me@example.com',
       transport => Email::Sender::Transport::SMTP::TLS->new(
         {
           host     => 'smtp@example.com',
           port     => 587,
           username => 'myusername',
           password => 'mypassword'
         }
       )
     }
   );
 };
 if ($@) {
    open my $file, '>>', '/home/me/var/log/sendXXX/error.log' or die $!;
    print $file $@, "\n";
    close $file;
    exit 1;
 }
 exit 0;

[ Perl モジュール ]

[ 2月28日全て ]

2014年3月27日 (木)

さくらのレンタルサーババージョンアップメンテナンス

さくらのレンタルサーバの「ディスク容量増量ならびにOSバージョンアップに伴うメンテナンス」が寝ている間に終了。 Perl も新しいバージョンが使えるようになるのだけれど、デフォルトでは今までと同じバージョンだから何もしなくても良いはず。

って確認したらスクリプトが動かなくなっている……。

あー 32 bit が 64 bit になったんだっけ。 SpeedyCGI が動かなくなっているのでまず外し。で再度走らせたら今度は Storable が Long integer size is not compatible といって既存データを読めなくなったので破棄して再生成中。あとは別のスクリプトでいくつか動かなくなったものがあったので、そちらは依存ライブラリを cpanm しなおし。

それとそれと

メールの送信前認証としてご提供している POP before SMTP を廃止いたします。そのため、今後はSMTP認証(SMTP-AUTH)が必須となります。

ってあったのでメールの方も確認したら Gmail からさくらのレンタルサーバ経由でメールが送れなくなっている。あーでも POP before SMTP なんか使ってなかったでしょう。なんでだー。って Twitter あたりみたら、どうも「国外IPアドレスフィルタ」(デフォルト有効)の機能提供開始のせいっぽい。 Gmail のサーバ国内とは限らないもんねぇ。

開始日時は自分のサーバは3月19日(水) 12:00 なので、この時から既に送れない状態になっていたのか。1週間気がつかなかったとか、もうプライベートではメールの利用頻度下がっているってことだねぇ。

さて、国外IPフィルタを無効化。

今日は朝からホットだった。

今日のさえずり: 国外 IP アドレスからのアクセスブロックのせいか

[ 3月27日全て ]

2015年1月7日 (水)

AndroidGmail アプリからドコモメールを送信する

最近 Nexus 6 とか欲しいなと思っている。もし今のNTTドコモ契約で使うとして、SIM カードを移してもキャリアメールはそれを必要とするネットサービス用に念のため使えるようにしておきたいなということで、ドコモメール(docomo mail)の設定まわりをしてみた。

キャリアメールはもう大して使っていないのでついこの間までspモードメール(sp-mode mail)のままだったのだけれど、去年12月の Xperia GXリセットしたのを機にデバイス側はドコモメールに変わっている。

ドコモメールだと SMTPIMAP で送受信できるとのことなので AndroidGmail アプリにアカウント追加をすることにした。

最初サーバ設定がうまくできなくてなんだろうと思ったら、事前に「ドコモメールのdocomo ID利用設定」が必要だったというオチだった。こちらをドコモメールアプリから設定しあらためて Gmail アプリでアカウント設定。

これで送信できるようになった。ただ受信については Gmail アプリではメールが一覧に出ず閲覧することもできず。

Web で見た限り既知の状態みたい。K-9 Mail 等では読むこともできるらしいので、IMAP の実装の違いとかそういうあたりなのかな。急ぎではないのでしばらく様子見にしておくことにする。

[ Android アプリレビュー ]

[ 1月7日全て ]

About

Naney Naneymx

Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Process Time: 0.051737s / load averages: 0.40, 0.37, 0.29