開発ブログ

株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。

電話でのお問合わせ 075-744-6842 ([月]-[金] 10:00〜17:00)

  1. top >
  2. 開発ブログ >
  3. CMS >
  4. baserCMS >
  5. baserCMSのメールフォーム設定その1~メールアドレス編~
baserCMSのメールフォーム設定その1~メールアドレス編~

baserCMSのメールフォーム設定その1~メールアドレス編~

自動保存プラグインを導入してから最初の記事執筆です。
世間はGWですね~。早く休みたい。


さて、今日から2回に分けてbaserCMSのメールフォーム設定についての覚書を書いていこうと思います。

2回目:baserCMSのメールフォーム設定その2~テンプレート編~

baserCMSのメールフォーム

柔軟なメールフォームがついている、
というのは弊社がbaserCMSを愛用・お勧めしている理由の一つです。
basercms_mail_gui.png
コーポレートサイトにはメールフォームは必須ですよね。

都道府県や郵便番号の入力に標準対応しているため、
メールフォームについて悩むことはほとんどありません。

また、メールフォームの項目を管理画面からGUIで自由に変更可能なため、
CMSやブログに慣れているクライアント様であれば、
ブログ・固定ページのご自分での投稿に加え、メールフォームの機能追加まで任せてしまっても運用上問題ないほどです。
 

メールアドレス/設定

そんなbaserCMSのメールフォームですが、意外と設定できる項目が多く、初心者は「あれ、これはどこで入力するんだ?」と戸惑うことがよくあります。
メールの送信先や送信結果にミスや問題があると、いくらbaserCMSのメールフォームが優れていても宝の持ち腐れです。

今日はメールアドレス回りの設定について覚書を残しておきます。
 

よくあるメールアドレスの設定や問題

baserCMSユーザーマニュアルの説明を見ればほとんど書いてあることばかりですが。

1.送信元(From)のメールアドレスを変更したい

baserCMSのインストール時に入力した[管理者メールアドレス]が利用されます。
[システム設定] > [サイト基本設定] > 管理者メールアドレス を変更すると、送信元が切り替わります。
basercms_mail_admin.png
※メールフォームごとに送信元を切り替えるには、メールプラグインのコードを修正する必要があります。
参考:お問い合せフォームの送信元をスイッチしたい|フォーラム|baserCMSユーザーズ
 

2.フォームごとに管理者向け自動送信メールの送信先アドレス(to)を指定したい。

baserCMSのデフォルトの設定では、

 ・フォームに入力されたユーザーのメールアドレス向けの自動送信メール
 ・管理者向け自動送信メール

の2通が管理者メールアドレスから送信されます。
管理者向けの自動送信メールのあて先は、メールフォームごとに切り替えることができます。
[システムナビ] > [メールプラグイン] > [メールフォーム一覧]に表示されているメールフォームから
変更したいフォームの名前をクリックすると編集画面になります。

送信先メールアドレス別のメールアドレスに送信するに設定し、メールアドレスを入力、保存すればOKです。
 

3.ほかのメールアドレス(BCC)にも管理者向けの自動送信メールを送りたい

管理者向けの自動送信メールは、複数のアドレスに送ることが可能です。

こちらもメールフォームごとの編集画面の、BCC用送信先メールアドレスに設定があります。
詳細:お問い合せメールを複数メールアドレスで受信したい|メールフォーム編|baserCMSマニュアル|baserCMSユーザーマニュアル

カンマ(,)区切りにすることで、複数のメールアドレスを指定することができます。
 

4.送信したメールが迷惑メールに分類される、またはフィッシングメールとして扱われるのを何とかしたい

本日のメインのお題です。

レンタルサーバの設定や管理者メールアドレスとして指定したメールアドレスによっては、
実際にメールの送信テストをしてみると、

・受信先のメールソフトやサービスでフィッシングメールと疑われるメッセージが表示されたり、
  このメッセージは次のアドレスから送信されたものではない可能性があります:
  info@example.com  詳細  フィッシングを報告
・迷惑メールに分類されたり

ということが起こりえます。

原因

スパムメールが一向に減る気配を見せない昨今、送信元を偽装して送られるスパムも少なくありません。
これに対し、多くのメールソフトやサービスに、メールヘッダの情報からメールサーバのドメインを逆引きして正当性を確認(送信ドメイン認証)することによって、
スパムやフィッシングの疑いがあるメールを検出する機能が備わっています。
※送信ドメイン認証についての解説は省きます

baserCMSを運用しているWebサーバと、送信元に利用する管理者メールアドレスを運用しているメールサーバが別である場合、
この送信ドメイン認証に引っかかるケースが多々あります。

問題のないケースの例

・Webサイトとメールアカウントを同じレンタルサーバのサービスで同じドメインで運用している
サーバのメール転送エージェント(MTA)が適切に設定されている場合がほとんどかと思います。

※レンタルサーバ業者によっては送信ドメイン認証(SPF認証)がオプションで設定できるところもあります。
設定しておけばスパムと誤認される可能性も減るでしょう。
 

問題となりうるケースの例

・example.comのメールアカウントをWebサーバとは別のサービスで運用
・Webサイトのドメインとメールアドレスのドメインがそもそも異なる


Google AppsやOutlook.comなどのWebメールを利用している、というケースはなかなか多いのではないでしょうか?
 

解決策


管理者メールアドレスのドメインに対応したSMTP(メール送信)サーバを正式に経由してメールを送信することで、
この問題は解決できます。

baserCMSの[システム設定] > [サイト基本設定] > [オプション]の下部に、
 

メール設定関連

なる項目があります。おそらくbaserCMSの利用者の一部にとって「最初の設定のままでもメール送れてるし……何に使うんだこれ???」な項目になっているのではないかと思います。

外部のメールサーバを指定するための設定項目だったんですね!びっくり!

利用しているメールサービスのSMTPサーバの設定メールソフトの設定などといったページを参照して項目を埋めればOKです。

basercms_mail_smtp.png

たとえばGmailの場合はこのような感じです。
送信メール(SMTP)サーバー - TLS が必要
smtp.gmail.com
ポート: 465 または 587
SSL を使用する: はい
認証が必要: はい
受信メール サーバーと同じ設定を使用する

SMTP TLS暗号化通信

実はこの画像に映っている一番下の項目、
[SMTP TLS暗号化]は現在リリースされているbaserCMS3.0.2の時点では実装されていません。
※記事執筆時点での情報です

当サイトでTLS通信が必要な外部のSMTPサーバを利用しており、
3系に移行するにあたり対応が必要だったため、GitHubでプルリクエストを送って追加していただきました。
(2系の時はCakePHPコアに手を加えていました)
Merge pull request #143 from n1215/smtpTls

GmailやGoogle Appsも送信サーバにはTLSが必須となっていますが、この修正で外部SMTPサーバの設定が可能になっています。

GitHubのbaserCMSのリポジトリから最新の開発版をDLして動かせば、この設定を体験可能です。
 

外部SMTPサーバを指定するデメリット

外部のサーバとインターネットを介して通信するため、
メールフォームの送信から完了画面の表示までに時間がかかるようになります。
(欲を言えばバックグラウンドでメール送信タスクがキューに積まれる実装になると問題ないのですが)
 

まとめ

・送信元アドレス(From)は管理者アドレスなのでシステム設定から変更
・送信先アドレス(To)はBCCと合わせてメールフォーム個別の設定で変更
・スパムやフィッシングと判断されるようならサイト基本設定からSMTPの設定を検討


次回はメールテンプレート編(送信文面とメールフォーム)です。

2014/07/23追記:baserCMSのメールフォーム設定その2~テンプレート編~
TOPに戻る