2016-12-19 5 views
1

RunBaseBatchで電子メールを送信したいが、エラー0x80040211(不明)が出る。
私はつまりグーグルで見つかった:ax2009 x ++ RunBaseBatchのエラー0x80040211

を、メッセージがSMTPサーバーに送信できませんでした。 トランスポートエラーコードは%2でした。サーバーの応答は%1

public void SendReport(str email) 
{ 
    SysMailer  sm = new SysMailer(); 
    ; 
    sm.quickSend("[email protected]", email, "Test", strfmt("body")); 
} 

たこのメソッドは、Runメソッドで呼び出されます。そして、もし私がこのソースコードを働く仕事にコピーすれば。さらに

permissionSet = new Set(Types::Class); 
permissionSet.add(new InteropPermission(InteropKind::ClrInterop)); 
permissionSet.add(new InteropPermission(InteropKind::ComInterop)); 
permissionSet.add(new InteropPermission(InteropKind::DllInterop)); 
CodeAccessPermission::assertMultiple(permissionSet); 
+2

非バッチでも同じコードが成功していますか?これは、アクセス権(AOSユーザーとユーザー)または層(サーバーとクライアントの両方から実行される)のいずれかである可能性が高いことを示します。マシンによるIP制限はありますか?その他の権限の問題? –

+0

はい、非バッチで正しく動作します(追加許可なし) – neuser

+0

メールサーバーの設定を確認しましたか?あなたは本当に問題を解決するのに十分な情報を与えていません。 –

答えて

1

あなたの電子メールは、ジョブ(クライアント側)で動作しているようですので、私が使用してファイル名を指定して実行方法、で、AXでのメール設定は問題ではありません。 これはおそらく認証の問題です。

ここでは、あなたが体験していることを説明しているarticleをご覧ください。

クライアント側では、現在のWindowsユーザーがSMTPサーバーの認証に使用されます。

バッチでは、電子メールはAOSから送信されます。つまり、認証に使用されるアカウントは、AOSサービスが実行されるアカウントです。

あなたのメールサーバーは、おそらくすべての人からの接続を受け入れません。
これがどのように達成されたかについてはhereをご覧ください。

AOSサービスを実行するユーザーにメールサーバーの認証を許可する必要があります。