0

パラメータとして指定されたmailidでメールを送信するために、C#でasp.net Webサービスを作成しました。

メールは送信されますが、受信トレイ メールとしてではなく、スパムとして表示されます。

次のコードを使用しました。

.NET コード:

public int SendMail(string mailto, string username, string password)
    {
        try
        {
            string mailFrom = "test@gmail.com";
            string siteName = "www.XYZ.com";
            MailAddress fromAddress = new MailAddress(mailFrom, siteName);
            SmtpClient mailClient = new SmtpClient();

            MailMessage message = new MailMessage();
            message.From = fromAddress;
            message.To.Add(mailto);

            message.Subject = "Your User Name and Password";
            message.IsBodyHtml = true;

            mailClient.Host = "relay-hosting.secureserver.net";
            mailClient.UseDefaultCredentials = false;
            mailClient.EnableSsl = false;

            string body = "<HTML><BODY><CENTER><H2>Your User Name  :'" + username + "' </H2><BR/><H2>Your Password :'" + password + "' </H2></CENTER></BODY></HTML>";

            message.Body = body;

            mailClient.Send(message);

            return 1;
        }
        catch (Exception ex)
        {
            return 0;
        }
    }

WEB.CONFIG コード:

    <system.net>
    <mailSettings>
        <smtp from="test@gmail.com">
            <network host="relay-hosting.secureserver.net" />
        </smtp>
    </mailSettings>
  </system.net>

何が問題になる可能性がありますか?

ありがとうございました..

4

4 に答える 4

2

FROM アドレスは GMAIL.COM で、GMAIL サーバーからではなく別のサーバーからメールを送信しています。DomainKeys Identified Mail (DKIM) と Sender Policy Framework (SPF) を使用して、ドメインの DNS レコードでそのドメインの承認された電子メール送信サーバーを指定できるようになりました (ほとんどのシステム管理者はそうしています)。このようにして、電子メール受信者サーバーが電子メールを受信すると、送信者ドメインの DNS で承認されていると記載されているサーバーのリストを使用して電子メール送信サーバーをチェックすることにより、電子メールの送信元の信頼性をチェックできます。一致しない場合、DNS レコードで送信者ドメインのシステム管理者によって設定または指定されたルールに従って、電子メールは完全に拒否されるか、スパムとしてスパム フォルダに保存される可能性があります。

これが起こっていることだと思います。電子メールを送信する前に、 http://www.mxtoolbox.com/blacklists.aspxサービスを使用して、送信サーバー (SMTP) の資格情報も確認する必要があります。

于 2012-05-29T05:01:21.053 に答える
2

送信元のドメインの有効な SPF レコードを持たない IP アドレスから送信すると、メールがスパムとして表示される可能性があります。この例では、「relay-hosting.secureserver.net」には、gmail の SMTP サーバーとして機能する有効な IP アドレスがありません。

「test@gmail.com」の代わりに、実際に使用する実際のドメインからテスト送信を行ってみてください。

それでもスパムとしてマークされる場合、 test@ youractualdomain.comの SPF レコードを追加するのは非常に簡単です。これは過去に私を助けてくれたサイトです: http://www.zytrax.com/books/dns/ch9/spf.html

于 2012-05-29T05:12:23.880 に答える
1

電子メールのスパムスコアを上げるために共謀することがいくつかあります。これはスパム/非スパムではなく、受信サーバーによって電子メールがスパムとしてマークされる「スパムスコア」であることを忘れないでください。

あなたの場合の要因は次のとおりだと思います。

  • 代替テキストメッセージのないHTML本文
  • 差出人アドレスは実際のサーバーに対応していませんメールはから送信されます
  • 差出人アドレスが存在しません
  • SMTPサーバー(relay-hosting.secureserver.net)のレピュテーションが低い
  • SPFまたはdomainKeyレコードはありません

解決策もいくつかあります。

  • メッセージの代替テキストバージョンを作成し、本文に含めます(この回答はその方法を説明しています)
  • 電子メールの送信元のサーバーに実際に存在する差出人アドレスを使用する
  • Sendgrid 、 postmarkAppMailjetなどのSMTPサーバーに信頼できるプロバイダーを使用します
  • SPFおよびDomainKeysDNSレコードを指定すると、受信サーバーはメッセージが適切なサーバーから送信されたものであると識別できます。

幸運を!

于 2012-05-30T06:01:08.307 に答える