2016-11-15 28 views
0

私はlog4j2経由で電子メールを送信しようとしています。私は実行時に電子メールの受信者を変更する必要があります。log4j2を使用して電子メール受信者を動的に変更する必要があります。SMTP

私が使用してコードを経由してこれを設定することができます

ThreadContext.put(USER_EMAILS, "[email protected]"); 

をしかし、私は使用してこれを設定しようとした場合:

<SMTP name="Mail" subject="MoLi Tests" 
    to="%X{userEmails}" from="[email protected]" 
    smtpHost="mail.company.com" smtpPort="25" bufferSize="1"> 
    <ThresholdFilter level="INFO" onMatch="ACCEPT" 
    onMismatch="DENY" /> 
    <PatternLayout pattern="%m %X{userEmails}"/> 
</SMTP> 

私は、取得するには、次の例外:

2016 -11-15 12:07:31,904 main ERROR電子メール通知の送信中にエラーが発生しました。 com.sun.mail.smtp.SMTPSendFailedException:451 4.3.2 to="[email protected]"を使用して注意が正常に動作し、userEmails変数が正常にはThreadContextに置かれていることを証明し

後ほど再度お試しください。あなたは、あなたのコードブロック内のコードの範囲を下回る

答えて

0

使用することができます

public static void main(String ara[]) 
{ 

Logger LOGGER = LogManager.getLogger(xxx.class); 

try 
{ 
    Properties p = System.getProperties(); 
    p.setProperty("mail.smtp.starttls.enable", "true"); 

    ThreadContext.put("userEmails","[email protected]"); 

    LOGGER.log(LOG_LEVEL, "TEST"); // your choice level 
    int a = 4/0; 

} catch (Throwable e) 
{ 

     LOGGER.log(LOG_LEVEL, "TEST"); 
    } 
関連する問題