2015-11-18 65 views
0

我無法弄清楚如何在服務器級別創建郵件會話。服務器級別的MailSession的Wsadmin腳本

這是我調用腳本:

WasLib.createMailSession("MY_MAIL_SESSION","mail/Emailer","smtp-myserver.com", "", "", "") 

這個腳本現有的腳本創建在細胞水平的郵件會話,但我需要改變的範圍,服務器級別。到目前爲止,我每次運行腳本時都被迫重新手動創建郵件會話。

這是我WasLib.createMailSession功能:

def createMailSession(sessionName, jndiName, mailTransportHost, mailTransportUser, mailTransportPassword, mailFrom): 
    print 'Creation du Mail Session : ' + sessionName 
    name = ['name', sessionName ] 
    jndi = ['jndiName', jndiName ] 
    host = ['mailTransportHost', mailTransportHost ] 
    user = ['mailTransportUser', mailTransportUser ] 
    password = ['mailTransportPassword', mailTransportPassword ] 
    mFrom = ['mailFrom', mailFrom ] 
    protocol = ['mailTransportProtocol', getProtocolProvider('smtp') ] 
    debug = ['debug', "true" ] 
    strict = ['strict', "true" ] 
    mailAttrs = [ name, jndi, host, user, password, mFrom, protocol, debug, strict ] 
    #print "attributes" + AdminConfig.attributes('MailSession') 
    #print "Required " + AdminConfig.required('MailSession') 
     mailSession = AdminConfig.create('MailSession', **getMailProvider()**, mailAttrs) 

    if (mailTransportUser != "") : 
     for itemId in AdminConfig.list('J2EEResourcePropertySet', mailSession).split(lineSeparator) : 
      if len(itemId) == 0 : 
       itemId = AdminConfig.create('J2EEResourcePropertySet', mailSession, "[]") 
      AdminConfig.create('J2EEResourceProperty', itemId, '[[name "mail.smtp.port"] [type "java.lang.String"] [description ""] [value "587"] [required "false"]]') 
       AdminConfig.create('J2EEResourceProperty', itemId, '[[name "mail.smtp.auth"] [type "java.lang.String"] [description ""] [value "true"] [required "false"]]') 
       AdminConfig.create('J2EEResourceProperty', itemId, '[[name "mail.smtp.from"] [type "java.lang.String"] [description ""] [value "' + mailFrom + '"] [required "false"]]') 
       #endIf 
      #endFor 
     #endIf 
     return mailSession 
#endDef 

正如你可以看到getMailProvider返回的電池中,當我將其更改爲服務器失敗。

def getMailProvider(): 
    return AdminConfig.getid('/Cell:'+AdminControl.getCell()+'/MailProvider:Built-in Mail Provider/') 
#endDef 

我已經沒有運氣嘗試這樣做:

def getMailProvider(): 
    return AdminConfig.getid('/Cell:'+ AdminControl.getCell() 
+'/Node:'+ AdminControl.getNode() +'/Server:'+ getServer() +'/')  
#endDef 
+1

你缺少'+ '/ MailProvider:內置的郵件提供商/''在第二個例子。這是一個錯字還是你忘記了? :-) – Gas

+0

由於此AdminConfig.getid('/ Cell:'+ AdminControl.getCell()+'/ Node:'+ AdminControl.getNode()+'/ Server:server1'+'/ MailProvider:內置郵件Provider /')'適合我。 – Gas

+0

我會試試。謝謝 –

回答

1

你在第二個例子中失蹤+'/MailProvider:Built-in Mail Provider/'

完整的命令應該是:

AdminConfig.getid('/Cell:' + AdminControl.getCell() + '/Node:' + AdminControl.getNode() + '/Server:server1' + '/MailProvider:Built-in Mail Provider/')