3

私は次のようにメール機能を使用しています:

mail($emailto, $subject, $body, $headers);
mail('askme@mysite.com', $subject.' / '.$emailto, $body, $headers);

1 つ目は、エンドユーザーを対象としています。2 番目のコピーは、記録保持用です。

エンドユーザーが自分の電子メール アドレスを指定する場合もあれば、空白の場合もあります。

  1. メールアドレスが指定されている場合、エンドユーザーは実際に問題なくメールを受け取ります
  2. ただし、いずれの場合も、askme@example.com にメールが送信されることはありません。スパム フォルダも確認しました。

私の /mail/new フォルダには、以下のようなファイルがたくさん作成されています。askme@mysite.com は有効なメール アドレスであるため、エラーは正しくありません (ドメインに Google を使用して設定)。

  Return-path: <>
  Envelope-to: myuserid@myhostingprovider.com
  Delivery-date: Mon, 28 Jun 2010 12:37:28 -0400
  Received: from mailnull by myhostingprovider.com with local (Exim 4.69)
      id UNIQUEIDZ-7x
      for myuserid@myhostingprovider.com; Mon, 28 Jun 2010 12:37:28 -0400
  X-Failed-Recipients: askme@mysite.com
  Auto-Submitted: auto-replied
  From: Mail Delivery System <Mailer-Daemon@myhostingprovider.com>
  To: myuserid@myhostingprovider.com
  Subject: Mail delivery failed: returning message to sender
  Message-Id: <EUNIQUEIDZ-7x@myhostingprovider.com>
  Date: Mon, 28 Jun 2010 12:37:28 -0400

  This message was created automatically by mail delivery software.

  A message that you sent could not be delivered to one or more of its
  recipients. This is a permanent error. The following address(es) failed:

    askme@mysite.com
      No Such User Here

  ------ This is a copy of the message, including all the headers. ------

  Return-path: <myuserid@myhostingprovider.com>
  Received: from nobody by myhostingprovider.com with local (Exim 4.69)
      (envelope-from <myuserid@myhostingprovider.com>)
      id UNIQUEIDV-6b
      for askme@mysite.com; Mon, 28 Jun 2010 12:37:28 -0400
  To: askme@mysite.com
  Subject: mysite.com: SUBJECT / enduser@gmail.com
  X-PHP-Script: www.mysite.com/mysitescript.php for IPADDRESS
  MIME-Version: 1.0
  Content-type: text/html; charset=UTF-8
  From: mysite.com Service <askme@mysite.com>
  Message-Id: <EUNIQUEIDV-6b@myhostingprovider.com>
  Date: Mon, 28 Jun 2010 12:37:28 -0400
4

3 に答える 3

6

2つのこと:

  1. $emailto関数を実際に呼び出す前に、 が空白かどうかを確認する必要がありmailます。PHP が空白のアドレスにメールを送信しようとするのは望ましくありません。

  2. 配信されない問題askme@mysite.comは、ローカル ウェブサイト ホスト ( mysite.com) がメールを「ローカル」アドレスと見なすアドレスに配信しようとした結果である可能性があります。これは、実際にはそのメールが Google Apps に存在するにもかかわらず、同じドメイン上にあるためです。メールサーバー (postfix や sendmail など) には、この「ショートカット」を無効にする設定が必要です。

于 2010-06-29T05:58:55.307 に答える
0

通常のメール クライアント (hotmail/gmail や Outlook/Thunderbird などの Web クライアント) を使用してそのアドレスにメールを送信できますか?

できない場合 - メール アカウントが正しく設定されていません。

可能であれば、あなたのメール アカウントはドメインまたは類似のものを無視するように設定されています (おそらく、ユーザーが存在しないふりをするスパム フィルターでしょうか?)。

于 2010-06-29T05:55:46.917 に答える
0

sendmailを使用している場合は、構成ファイルに移動し、MX レコードを使用してGoogle Appsを指すようにします。次の手順を実行します。

sudo vim /etc/mail/sendmail.mc

これを追加:

FEATURE(`relay_based_on_MX')dnl

メールの送信を再開する

sudo /etc/init.d/sendmail restart
于 2014-03-28T23:37:36.100 に答える