3

私はphpとmysqlを使用しています。そして私のサイトはフラッシュです(フルフラッシュサイト)

ユーザーがサインアップできるWebサイトがあります。「アクティベーション メール」の送信を含むサインアップ プロセス。リンクをクリックしてアカウントをアクティベートします。

最初の2週間は大丈夫でした。約 2000 人のユーザーのうち、1800 人のユーザーがアクティブ化されています。その後、アクティブ化されたユーザーは大幅に減少し、約 30% になります。例: 1000 人のユーザーがサインアップし、300 人だけがアクティブ化されました。

最初に、ymail、msn、gmail ユーザーにメールが届かないことが原因であることがわかりました。(私のサブスクライバーのほとんどは、Ymail (yahoo)、hotmail/msn (live)、および gmail (gmail) です)。ymail と hotmail を使用してサインアップしようとしましたが、アクティベーション メールが届きません。yahoo と msn に連絡しましたが、最終的にはメールを送信できるようになりました。

しかし、私のサインアップ統計はまだ表示されており、アクティブ化されたユーザーは約 30% しかなく、非常に混乱しています。ホスティング会社に連絡して、IP をホワイトリストに登録してもらいます。そして、彼らはそれをしました。

次の質問についてあなたのアドバイス/助けが必要です:

  • 問題がどこにあるかを確認する方法は?メールが届かない?ユーザーは電子メールを受け取りましたが、アクティベーション リンクをクリックしませんでしたか?

私はphpメール機能を使用しています。これは私のヘッダーです:

  $headers = 'MIME-Version: 1.0' . "\r\n";

  $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

  $headers .= 'From: Admin <\admin@domain.com>' . "\r\n";

  $headers .= 'Return-Receipt-To: Bounce <\bounce@domain.com>' . "\r\n";

  $headers .= 'Reply-To: Admin <\admin@domain.com>' . "\r\n";

  $return_path = "\bounce@domain.com\";

(私は自分のドメイン名を非表示にし、電子メール内にバックスラッシュを追加します。そうしないと、電子メールがここに表示されないため、変です)

ヘッダーに何か問題がありますか?

  • 登録/サインアップの有効化プロセスを改善するにはどうすればよいですか?
4

4 に答える 4

1

ドメインからの sendmail のようなメール サーバーの代わりに、smtp サーバーとして gmail を使用してみてください。gmail smtp を使用すると、メールがベスト エフォートで確実に送信されるようになります。また、メール ID がスパムとしてマークされていない限り、Gmail はスパムとして扱われません (安全な ID を使用してみてください)。あなたの最善の策は、電子メールがユーザーの受信トレイに確実に届くようにすることです。

セーフティ ネットとして、最初のリンクが何らかの理由で失敗した場合に、ユーザーがアクティベーション リンクを再送信できるようにする機能を使用できます。

gmail を smtp として使用することに抵抗がある場合は、Google アプリでドメインをサインアップできます (ただし、ビジネス ニーズの変更が必要になる場合があります)。admin@domain.com のような電子メールを使用し、効率的な gmail smtp サーバーを引き続き使用できます。

外部の smtp サーバーを使用できるようにする phpMAiler のような多くのライブラリがあります。gmail サーバーを経由するすべてのデータは、SSL または TSL 経由で送信されることに注意してください。

于 2009-12-07T07:24:06.340 に答える
1

mail() 関数の「-f」パラメーターとしてリターン パスを渡す必要があります。

mail(
    $this->recipient,
    $subj,
    $this->body,
    $this->compose_headers(),
    '-f ' . Options::obj()->mail->return_path);

また、最良の結果を得るには、送信側サーバーのパブリック ドメイン名が example.com の場合、リターン パスを something@example.com にする必要があります。

とにかく、ログ (/var/log/mail*) を確認して、何が起こっているのかを正確に把握する必要があります。

于 2009-12-07T07:20:15.113 に答える
0

登録メールを送信するメール サーバーのログ ファイルにアクセスできますか? 通常、バウンスされた電子メールは送信側サーバーに戻ります。ログ ファイルを監視することで、まだバウンスされている電子メールの数 (存在する場合) をチェックして確認できます。

アクティブ化された電子メール アドレスなしで、ユーザーは Web サイトにどのようなアクセス権を持っていますか? 無効になっている機能はありますか? 実際のメールアドレスを有効化または使用するインセンティブはありますか?

于 2009-12-07T07:22:36.013 に答える
0

あなたの例では、必須フィールドである Date ヘッダーが表示されていません。私の経験では、一部のメール ハンドラーはメールのないメールを拒否します (また、現在の日付を追加するだけのメール ハンドラーもあります)。実際のコードにメールがない場合は、メールを追加してみて、違いが生じるかどうかを確認してください。

必要なものに関する情報については、RFC2822 を検索してください。

于 2009-12-07T07:48:13.357 に答える