バリューサーバーからpearを使ってメール送信を試みたが上手く動作しない。やっと解決したのでメモ。

まずバリューサーバーのphpの動作モードを確認。


モジュール版を確認



phpの動作モードがモジュール版の場合、Document root ディレクトリーに.htaccessを置き下記を記述した。

php_value sendmail_from "your_name@your_domain"
php_value SMTP "s7.valueserver.jp"
php_value smtp_port "587"


phpinfoで反映を確認

これで正常にメール送信ができた。

参考サイト:
http://wxiaoy.com/category10/entry76.html
https://www.gesource.jp/weblog/?p=283

magento 2 をインストールして各種設定後メールの送信ができていないことに気がついた。
モジュールを探してみたが2.0以降のものは見つからない。
解決策を模索していたら下記の記事を見つけた。

http://ubuntu-php-magento.blogspot.de/2013/08/how-to-install-postfix-in-ubuntu-1204.html

要するに
php.ini に下記を追加して、httpdをリスタートするだけ。

sendmail_from = このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。

ちなみにこの記事では

vi /etc/postfix/main.c fを変更
myhostname = localhost

myhostname = example.com

vi /etc/php.ini 変更・追加 (要確認)
sendmail_path = "/usr/sbin/sendmail -t -i"
sendmail_from = このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。

私の場合は
sendmail_from = このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。
の追記のみでした。

postfixとhttpdの再起動をお忘れなく。
これでmagento 2 からContact Us と 発注メールが届いた。

私のシステムは
CentOS 7.2
Apache/2.4.6
mysql 5.6.28
PHP 5.6.17
magento 2.0.0
です。

サーバーを替えてしばらく過ぎてメール送信の不具合に気付いた。
$mailObject = Mail::factory("smtp", $params);
の部分でエラーが出ていたようだ。

smtpを使用するには、Net_SMTP 関連パッケージが必要らしい。何度もpearをインストールしているが、このケースは初めてだ。

# pear list
Installed packages, channel pear.php.net:
=========================================
Package Version State
Archive_Tar 1.3.11 stable
Auth_SASL 1.0.6 stable
Console_Getopt 1.3.1 stable
Log 1.12.9 stable
Mail 1.2.0 stable
Mail_Mime 1.10.0 stable
Mail_mimeDecode 1.5.5 stable
Net_SMTP 1.7.1 stable
Net_Socket 1.0.14 stable
PEAR 1.9.4 stable
Structures_Graph 1.0.4 stable
XML_Util 1.2.1 stable

やっと動いた。

フォームの応答に送信専用アカウントが必要になる場合があります。
考え方を変えれば、このアカウントに送信された場合、受信拒否をすればよいことになります。

vi /etc/postfix/main.cf

#header_checks = regexp:/etc/postfix/header_checks
#を削除、適用させる

vi /etc/postfix/header_checks

最後に記述
# HEADER_CHECKS
/^To:.*このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。/ REJECT

設定後、postmap作成
/usr/sbin/postmap /etc/postfix/header_checks

postfix 再起動
/etc/rc.d/init.d/postfix restart