概ね開発の日々


オヤジニア

八幡神社にて

2015/02/04 17:54

Tomohiro Orikasa

  views 

八幡神社にて 1

昼間、喫茶店への道すがら見つけた鮫洲八幡神社。色々あるけどできることをやるしかないんですよね。なんてことを考えつつお参り。新旧のお客さんへのサポートの合間を縫って、サイトのオープンに向けた細かい修正を。まずは運営者のページを直す。現時点では単独スポンサーにて運営(うちだけとも言うw)。次に連絡先のページの内容も修正して、問合せフォームからメールが飛んでくるようにする。買ったテンプレートに入っていたTMform.jsを使ってみる。TemplateMonsterで販売されているBootstrap用テンプレートで使われているらしく説明ページもある。フロントエンドでちょっとした入力チェックをしてくれるが、スクリプトサイズが大きくミニファイかけてもほとんど小さくならない。そのままでは使えないので書き換えてしまおう。でもライセンスがどこにも書いてないんだよね… 他に、送信用のPHPスクリプトも付いているが、こちとらNodeJSなのでそれは使わずに、DBにPOSTしてからメール送信するよう、バックエンド側に追加の処理を組み込む。Nodemailerを使って、別のメールサーバにSMTPS経由で送信してもらおう。あれ?バージョンアップして別サーバを使うにはnodemailer-smtp-transportが必要になったらしい。少しハマった。Gmailだけモジュールなしでもいけるんだとか。うーん、世の中はここまでGoogle化してたんだね… ということで、以下はNodeJSから自前のサーバに、ダイレクトにメールを送信したい奇特な人向けのメモw

こんな感じでモジュールを追加。ついでに本体もアップデートしておく。

# npm install nodemailer-smtp-transport
# npm update nodemailer

書き方が変わったところはこんな感じ。起動時に送信用の口(transporter)を作っておく。

var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');
var transporter = nodemailer.createTransport(smtpTransport({
    host: '[メールサーバ]',
    secure: true,
    port: 465,
    tls: { rejectUnauthorized: false },
    auth: {
        user: '[認証用のユーザ]',
        pass: '[パスワード]'
    }
}));

その口を使って送信するところ。本文が「body」から「text」に変わっているので注意。「html」にするとタグ付きメールで送れるようだが、そんなつもりは毛頭ないのでスルー。

transporter.sendMail({
    from: '[送信するメールアドレス]',
    to: '[受信するメールアドレス]',
    subject: 'お問い合わせフォームより',
    text: '[前もって生成しておいたお問い合わせ内容を含むメールの本文]'
});

あとはMarkdownの書き方ページを仕上げる。さて、記事も書いたし、更新して寝ようかと思ったら、記事のタグ件数が合ってない。よくよく探すと、根深いところにバグがある。しばらく格闘するも抜本的な改善に至らず…頭が回ってないな。少し寝ておこう…