-1

職場の PC (システム トレイ) で実行される Windows サービスがあり、1 日の特定の時点で、Rackspace Virtual Server でホストされている Wordpress サイトに電子メールを送信します。

現時点では、基本的な MailMessage 関数を使用しているだけで、動作しています。

MailMessage message = new MailMessage(sendfrom, sendto, subject, emailmessage);
message.IsBodyHtml = html;
SmtpClient client = new SmtpClient();
client.Send(message);

ただし、構成ファイルでは、オフィスのメールホストを使用しています。

<system.net>
  <mailSettings>
    <smtp>
      <network host="generic.smtp.myoffice"/>
    </smtp>
  </mailSettings>
</system.net>

Rackspace クラウド サーバーで独自のメールホストとメール サーバーを使用するように変更したいと考えています。

ネットワークホストを自分のサーバーのホスト名に変更すると、送信元と送信先の両方の電子メールアドレスがそのサーバーに存在するアドレスであるため、それは限り機能します。たとえば、私のRackspaceサーバーのホスト名は

myserver.monkeymagix.com

2つのサイトを設定しています

www.site1.com と www.site2.com の両方に電子メール アカウントがあります。

ネットワークホストを

<system.net>
  <mailSettings>
    <smtp>
      <network host="myserver.monkeymagix.com"/>
    </smtp>
  </mailSettings>
</system.net>

そして、admin@site1.com から admin@site2.com に電子メールを、Rackspace サーバーに接続されていない職場の PC の単純なコンソール スクリプトから送信すると、機能し、電子メールを受信します。

ただし、受信者の電子メール アドレスを職場の電子メール アドレス (例: rob@office.com) に変更すると、スクリプトを実行すると次のエラーが表示されます。

電子メールの送信 テスト電子メールは、SMTP エラーのため送信できませんでした。処理に失敗しました。サーバーの応答は次のとおりでした: 5.7.1 : リレー アクセスが拒否されました 電子メール テストの送信の完了

したがって:

a) スクリプトが職場の PC で実行され、送信者と受信者の両方がリモート Rackspace サーバーのドメインである場合、テストが機能するのはなぜですか?

b) または逆に、受信者アドレス (または送信者と受信者の両方のアドレス) が私の職場のアドレスである場合に機能しないのはなぜですか?

c) 何か奇妙なことが起こっている場合、サーバーのホスト名を指定するだけでなく、仕事用 PC (または任意の PC) から (クラウド サーバー上の) 自分のメール サーバーを介して安全にメールを送信できるようにするには、どのように設定すればよいですか? (ポート番号なしなど) ?

Windows サービスを別のマシンに移動できるようにしたいのですが、Rackspace Cloud サーバーを介して適切かつ安全に電子メールを送信できるようにアプリケーションをセットアップする方法を知る必要があります。私のファイアウォールは正しく設定されており、専門家の少年は、設定に問題は見られず、サービス/ポートにアクセスして悪用することはできないと言いました。したがって、クラウドサーバーに接続していないときに、仕事用PCからクラウドサーバーを介してメールを送信できるのはなぜだろうかと思います(私は知っています)。

どんな助けでも大歓迎です。何が起こっているのか、また NET クラスをどのようにセットアップすればよいかを知らせて、おそらくリモートの EXE からメールホスト経由で電子メールを送信できるようにします。

ありがとう

4

1 に答える 1

0

Your cloud server has probably disabled relaying to prevent spammers from using their SMTP servers.

You probably need to enable authentication to be able to send emails to someone else via their SMTP server. However, you are most likely still limited to use the email address that you authenticate as the sender.

<system.net>
    <mailSettings>
        <smtp from="name@domain.com">
            <network host="smtp.mail.com" 
                     userName="name@domain.com" 
                     password="blog.dotnetclr.com"/>
        </smtp>
    </mailSettings>
</system.net>
于 2013-01-10T06:29:39.760 に答える