0

メール検証 (PHP) のために新規登録ユーザーにメールを送信しようとしていますが、わかりません。メールがスパムに送信されるのはなぜですか。同様の質問を既にチェックしており、すべての回答はヘッダーに関するものです。

これらのヘッダーを知るのは少し複雑なようで、
送信者の Web サイトによってどのように検証されていますか? 私が user@google.com として送信し、実際のサーバー ドメインが domain.com であるとしましょう。それがスパムになる主な理由の 1 つですか?
VPSを使っていますが何か関係ありますか? メールがスパムとしてチェックされる理由と、ドメイン自体ではなくサーバーIPから送信した場合
の明確で単純な理由を理解しようとしています

4

4 に答える 4

1

ほとんどのメールサーバーはDNS逆引き参照を実行して、domain.comのユーザーがotherdomain.comのふりをするのを防ぎます。電子メールの送信元のIPアドレスが電子メール送信者と同じドメイン名に解決されるかどうかを確認します。Yahooや他の大企業もDKIMを使用してあなたを確認します。

多くの場合、メッセージに多くのコンテンツが含まれていない場合、または1つのサーバーに多くの同じコンテンツを送信した場合、メッセージはバルク/スパムになってしまう可能性があります。

これは、件名を理解するのに役立つ可能性のある電子メールの送信についてWeb開発者が知っておくべきことについての良い記事です。

于 2012-07-26T09:37:58.363 に答える
0

VPSを運用している場合は、サーバーにDKIMSPFを設定することを検討してください。これらは、Gmailなどのメールサービスでサーバーを正規のサーバーとして分類するために使用されます。

于 2012-08-10T12:42:16.173 に答える
0

1)ヘッダーを確認します。PHPMailer(http://code.google.com/a/apache-extras.org/p/phpmailer/wiki/PHPMailer#Documentation_and_Resources)などの任意のメール送信ライブラリを使用できます。

2)ホスティングサーバーを確認します。共有ホスティングを使用している場合は、おそらくメールドメインによってブラックリストに登録されています。

于 2012-07-26T09:37:31.483 に答える
0

ドメインでメール アドレスを構成します。次のスクリプトで、ドメインme@mydomain.com新しく作成したメール アドレスと Hotmail/Gmail ID に置き換えます。id@hotmailOrgmail.com

また、次のスクリプトを自分の名前に置き換えYour Nameて、サーバーでテストします。

<?php

    $myName = "Your Name";
    $myEmailAddressonDomain = "me@mydomain.com";
    $myPreferredEmailAddresson  = "id@hotmailOrgmail.com";
    $mail = $_POST['email_field'];
    $clientName = $_POST['name_field'];
    $subject = $_POST['subject_field'];
    $text = $_POST['message_field'];

    $headers = 'From: "$name" <$yourEmailAddressonDomain>'.PHP_EOL.'Reply-To: '.$_POST['mail'].PHP_EOL;
    $to = '"$yourname" <$myPreferredEmailAddresson>';
    $message = $text.PHP_EOL.PHP_EOL."---".PHP_EOL."From: ".$name." <".$mail.">";

    /* Server-side form validations */
    $err = "Error with ";


    if (!checkLen($name)) {
        $err.='Name';
    } else if (!checkLen($mail) && !checkEmail($mail)) {
        $err.='Email';
    } else if (!checkLen($subject)) {
        $err.='Subject';
    } else if (!checkLen($text)) {
        $err.='Message';
    }

    if (strlen($err)>11) {
        echo $err.' field';
        exit;
    }
    /* end validations */

    elseif (mail($to, $subject,$message, $headers)) {
        echo "<span style='color: #336600'>Your message has been sent.</span>";
    } else {
        echo "An error occurred, please try again.";
    }

    function checkLen($str,$len=1)
    {
        return isset($str) && mb_strlen(strip_tags($str),"utf-8") > $len;
    }

    function checkEmail($str)
    {
        return preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $str);
    }


?>

メールは、ドメインのメール アドレス経由で Hotmail/Gmail の受信トレイ (またはスパム以外のメール) フォルダーに届きます。

注:受信したメールの [返信] をクリックすると、クライアントのメール アドレスが表示されます (Reply-To上記のヘッダーで設定したとおり) 。

適切な変更を加えれば、準備完了です。

于 2012-07-26T09:53:51.063 に答える