Webフォームに入力して送信すると、次のようなページにリダイレクトされます。
送信いただきありがとうございます。
しかし、そこには赤い警告ボックスがあります:
電子メールを送信できません。問題が解決しない場合は、サイト管理者に連絡してください。
私はそのSMTPサーバーだと思いますが、それを修正する方法がわかりません。
使ってみてください:
Gmailを使用してSTMPを設定する場合は、次の手順に従います。
エラー:
電子メールを送信できません。
は drupal_mail() からのものであり、非常に一般的であると考えられており、Drupalサイト、PHPオペレーティングシステムの構成またはSMTPサービス。
最初にすることは、単純に missing sendmail
it-のように、エラーの詳細についてメールシステムまたはApacheログ(たとえば、/var/log/Apache2/error.log
)を確認することです。セルフ(外部のSMTPサービスを使用する場合を除く)。
Drupalが専用サーバーでホストされていて、それがまったく新しい構成である場合、SMTPサーバーが欠落している可能性があります(デフォルトでlocalhost
を指しているため))。外部のものを使うつもりです。
ローカル開発マシンの場合は、エラーを無視するか(専用サーバーで正常に機能するため)、 MailCatcher をインストールするか、上記のようにSMTPサーバーをインストールする必要があります。
他にいくつかの提案があります:
mail_system
変数の値を確認します-デフォルト値(drush vdel mail_system
)にリセットします。php -i | grep -ie mail -e smtp
)を確認し、sendmail_path
、SMTP
Hostおよびsmtp_port
が正しいことを確認します。telnet
を使用して、SMTPサーバーへの接続を確認します。
telnet $(php -r 'echo ini_get("SMTP") . " " . ini_get("smtp_port");')
ホストがダウンしていないか、DNSによって解決されているか、ファイアウォールによってブロックされていないかを再確認するには、
postfix
を使用している場合は、 httpd_can_sendmail
が1
(setsebool httpd_can_sendmail 1
)に設定されているかどうかを確認します。
最後に、次のPHPコマンドで電子メールをテストします。
php -r 'mail("[email protected]", "Mail test", "It works!");'
そして、これをチェックしてください ページ 電子メールが受信されたかどうか。
DrupalウォッチドッグおよびPHPエラーログを確認してください。問題の原因を突き止めるのに役立つログエラーである可能性があります。また、システム管理者に確認してください使用しているSMTPサーバーの資格情報が有効かどうか(つまり、アドレス、ポート、暗号化、パスワードなど)を確認します。
Amazon SESサンドボックスの問題が原因でこの問題に巻き込まれました。 Amazon SESでは、サンドボックスモードで検証されていないドメインにメールを送信することはできません。プロダクションアクセスをリクエストする必要があり、問題は解決されます。
送信される内容を確認するだけで十分な場合、maillogモジュールは非常に便利です。
承認された回答でこの問題は解決しましたが、この投稿の時点で、Gmailはすべての安全性の低いアプリケーションをブロックすることに注意してください。これは、drupal HTTPSで実行されていません。
次に、Gmailのマイアカウントで安全性の低いアプリケーションを許可する必要があります。
または、drupalサイトのSSL証明書)を取得します。
同じ共有ホスティング上でウェブマスター用のメールを作成せずにメールを送信することはできません。例のために。ドメインtest.comをお持ちの場合は、メールに[email protected]または[email protected]を作成し、このメールをウェブサイトのメインのメールとして設定する必要があります。このメールは、メールの[差出人]欄に表示されます。または、ドメイン用に独自のメールを作成し、このメールをサイトのプライマリとして設定します。共有ホスティングのセキュリティ設定に依存します。
それが他の人を助ける場合:
このエラーを受け取っており、CupとBccの両方にdrupal_mailヘッダーで同じメールアドレスを設定していることが原因であることがわかりました。 (これは私がテストしていたためです)
ステップ1:設定できます [〜#〜] smtp [〜#〜] ステップ2:コマンドラインでポート465を開く "-A INPUT -p tcp --dport 465 -j ACCEPT"
Windowsでは次の設定が機能しました。
Gmailを使用してSTMPを設定する場合は、次の手順に従います。
SMTPサーバー:smtp.gmail.com
SMTPポート:465
暗号化されたプロトコルを使用:SSLを使用
SMTP認証-Gmailのユーザー名とパスワード
他のオプションはデフォルトのままにします