私のプロジェクトでは、ルールを使用して登録した後、profile2ユーザーにプロモーションメールを送信しています。すべてが正常に機能しています。登録リンクのメールとプロモーションメールの両方を受け取ります。しかしDrupal次のメッセージをください:
電子メールを送信できません。問題が解決しない場合は、サイト管理者に連絡してください。
両方のメールを正常に受信したので、このエラーは必要ありません。これがなぜ起こるか私は知りません。私を助けてください
これを使用してルールを設定しました article 。
オペレーティングシステムがメール送信エラーを報告すると、そのエラーが表示されます。
Contains/mail.incを確認すると、次のように表示されます。
if (empty($message['send'])) {
$message['result'] = NULL;
}
// Sending was originally requested and was not canceled.
else {
$message['result'] = $system->mail($message);
// Log errors.
if (!$message['result']) {
watchdog('mail', 'Error sending e-mail (from %from to %to).', array('%from' => $message['from'], '%to' => $message['to']), WATCHDOG_ERROR);
drupal_set_message(t('Unable to send e-mail. Contact the site administrator if the problem persists.'), 'error');
}
}
$system->mail
は通常、DefaultMailSystemにマップします。この関数は単にmail PHP関数を呼び出します。このPHP関数は、メールを配信するためにシステムメールエージェントを使用し、メールエージェントが返したものを返します。つまり、 PHPはメールの送信を担当していません。システムのメールエージェントに配信するだけです。
したがって、メールを受信した場合は、システムの問題である可能性があります。システムはエラーをPHPに報告しますが、実際にはメールが送信されます。PHPログ、メールエージェントを確認してくださいログ(sendmailまたはpostfixは非常に人気があります)を使用して、警告またはエラーの可能性を確認します。
まず、SMTPモジュールを追加して有効にします。この後、サイト管理者(チェックされないアカウント)の電子メールアカウントを作成し、SMTPモジュールのセットアップでこのアドレスを使用します。サイトのキャッシュをクリアして、再テストしました。今はすべて良好です。
また、設定の際は、フィールドにスペースや改行がないことを確認してください。また、使用しているメールポート(通常は25または26)についてWebホストに確認することをお勧めします。
この問題の主な原因は、一部のWebホストがスパムを削減するためにSMTP電子メールの認証を要求することです。
詳細については、以下のリンクを確認してください
Unable to send e-mail. Contact the site administrator if the problem persists.
Unable to send e-mail. Contact the site administrator if the problem persists.