ドメインにメールを送信する簡単なphpスクリプトがあります。
...
$toMail = "[email protected]"; //this works - I get the email at my gmail
$toMail = "[email protected]"; //this doesn't - I get nothing
mail($toMail, $subject, $message, $header);
これを修正するためにどの設定を変更しますか?
最近サイトを再設計していたときに、自分でこの問題を抱えていました。
システムのセットアップ方法に問題があり、システムはメールが同じドメインから送信されたものであるため、スパムメールであると判断し、それをブロックしました。
電子メールなどの送信が許可されていることをシステム管理者に確認してください。
それとも、外部アドレスから送信されているように見えるようにヘッダーを変更する必要があります。あなたがそれをソートすることを願っています。
メールにGoogle Appsを使用しているが、ホストを他のプロバイダーに持っている人にとっては、cPanelにあまり詳しくない人向けの詳細な手順です。
ドメイン内のアカウントにメールを送信するときに、PHPフォームを使用して、ドメインからメールを送信する問題を修正できました。
つまり、mydomain.com連絡先フォームから[email protected]にメールを送信します。ドメインにGoogle Appsを使用するドメインの正しいMXレコードがある場合でも、上記は機能しませんでした。
Mikeが(および他の人たちも)上記のように、問題は解決されました:MXレコードをcPanelに追加しました。
この設定により、mail PHP関数を使用して、Webサイトと同じドメイン内のメールアカウントにメールを送信できました。
MXレコードに関するGoogleアプリの手順 https://support.google.com/a/answer/54717?hl=ja
https://serverfault.com/questions/65365/disable-local-delivery-in-sendmail の一番上の答えは私には正しいようです。その要点は、sendmail.mcに次のものが必要なことです。
define(`MAIL_HUB`, 'example.com.')dnl
define(`LOCAL_RELAY`, 'example.com.')dnl
ここで、example.comは問題のドメインです。
使用する場合 接尾辞、 これを行う :
nano /etc/postfix/main.cf
# mydestination = ...
mydestination =
/etc/init.d/postfix reload
メール機能に追加のパラメーターを設定する必要があります。作業例では、メールアドレスの前に「-f」を追加する必要があります。
mail($toMail, $subject, $message, $header, "[email protected]");
私は同じ問題を抱えており、次の方法でそれを解決することができました。メールをサーバーにローカルに保存しませんが、レジストラーのMXレコードを使用してメールをGoogle Appsに転送します。サーバーはレジストラからMXレコードを取得せず、ローカルMXレコードまたはメールボックスがないため破棄するため、CpanelでもMXレコードを更新する必要がありました。レジストラのMXエントリと一致するようにCpanelのMXエントリを更新しましたが、問題は即座に修正されました
ウェブサイトとは異なるサーバーでメールをホストしていますか?その場合、PHPスクリプトはそれを内部で送信しようとするかもしれません。
私が見つけた解決策は、Webホストのメールサーバーを無効にして、PHPがメッセージをインターネットに送信して適切に送信することでした。
Michael Helleinに同意します。根本的な問題は、ドメインのexample.comメールアカウントをローカルアカウントと見なすsendmailである可能性があります。もしそうなら、ここにいくつかのガイドリンクがあります:
しかし、私の場合、FreeBSD 8.2を使用して、実際にやったことは:
# cd /etc/mail
# vim freebsd.mc
次の2行を追加します。
define(`MAIL_HUB', `example.com.')dnl
define(`LOCAL_RELAY', `example.com.')dnl
直前:
MAILER(local)
MAILER(smtp)
次に:
# make
これは出力です:
cp freebsd.mc Host.example.com.mc
/usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/ /usr/share/sendmail/cf/m4/cf.m4 Host.example.com.mc > Host.example.com.cf
cp freebsd.submit.mc Host.example.com.submit.mc
/usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/ /usr/share/sendmail/cf/m4/cf.m4 Host.example.com.submit.mc > Host.example.com.submit.cf
次に:
# cp sendmail.cf sendmail.cf.bak
# cp Host.example.com.cf sendmail.cf
# /etc/rc.d/sendmail restart
これが誰かの頭痛の種を救うことを願っています。
PostFix、Debian7、SMTP Mailjetを使用
ドメインがmy-domain.com
の場合、/etc/postfix/main.cf
で、変更
mydestination = my-domain.com, localhost, localhost.localdomain, localhost
に
mydestination = localhost, localhost.localdomain, localhost
私もこの問題を抱えていました。メールサーバーを無効にすると、メールはまったく送信されませんでした。したがって、私が行った修正は、/etc/mail/local-Host-names
ファイルからすべてのローカルドメイン名を削除することでした
同様の問題があり、すべてのメールがgmail、live、yahooなどの他のドメインに完全に送信されていましたが、ローカルドメインではすべてのメールが消えていました。 QDAMを実行するLinuxベースのgodaddyを備えたVPSサーバーがありました。
Var/qmail/control/virtualdomains fileの特定のドメイン名を削除することで問題を解決しました。
SMTPメールサーバーもオプションになります。
ドメインのメールアカウントに実際にメールを送信できることを確認してから、コード/メールをチェックして、すべてが正しく記述されていることを確認してください。
私はこのエラーに8時間以上を費やし、ヘッダーを他のメールアドレスに変更するだけで解決します
他の人が説明したように、一部のサーバーは、送信サーバー上の有効な電子メールアドレスがない電子メールを拒否するように構成されています。 $ headers文字列に、定義済みの有効なメールアドレス「From:[email protected]」が含まれていることを確認します。
この問題は何度か発生しましたが、その原因はメールが別のサーバー(Google Appsなど)でホストされているかどうかでした。メールがローカルドメインに送信されるとき、MXレコードのルックアップを実行する必要がないため、適切にルーティングされません。この問題の解決策は、ホストによってサーバー上でメール機能を無効にするだけです。
私は同じ問題を抱えており、電子メール用に別のサーバーでホストされていたため、ローカルメールサーバーを無効にする必要がありました。
txt
レコードがドメインに正しく設定されていることを確認してください。これは通常、これをtxt
record:@ (None)
v = spf1 include:_spf.google.com〜allに入れない場合に発生します
私のために働いたのはLocal Mail Exchangerを選択することです:
Local Mail Exchangerは、GoDaddyの同じドメインのアカウントにメールを送信できるようにします。例:[email protected]