2013-02-22 101 views
1

我試圖發送電子郵件在木蘭CMS 4.5.4使用郵件模塊。我到目前爲止的代碼是:玉蘭郵件模塊不起作用

protected void sendEmail(CommentDTO comment){ 
     if(comment!=null){ 
      try{ 
       MgnlMailFactory mailFactory = MailModule.getInstance().getFactory(); 
       if(mailFactory!=null){ 
        Map<String, Object> params = new HashMap<String, Object>(); 


        MgnlEmail mail = mailFactory.getEmailFromTemplate("MyTemplate", params); 
        mail.setToList("[email protected]"); 
        mail.setBody("HELLO"); 
        mail.setFrom("[email protected]"); 
        if(mail!=null){ 
         MgnlMailHandler mmh = mailFactory.getEmailHandler(); 
         if(mmh!=null){ 
          mmh.prepareAndSendMail(mail); 
         } 
        } 
       } 
      }catch(Exception e){ 

      } 
     } 
    } 

我得到的日誌是:

2013-02-22 16:52:30,357 INFO fo.magnolia.module.mail.handlers.SimpleMailHandler: Mail has been sent to: [2013-02-22 16:52:30,357 INFO fo.magnolia.module.mail.handlers.SimpleMailHandler: Mail has been sent to: [[email protected]] 

但電子郵件永遠不會到來......

此跟蹤我得到前:

2013-02-22 16:52:24,212 WARN info.magnolia.cms.util.DeprecationUtil   : A deprecated class or method was used: Use IoC!. Check the following trace: info.magnolia.module.mail.MailModule.getInstance(MailModule.java:80), info.magnolia.module.mail.MgnlMailFactory.getEmailHandler(MgnlMailFactory.java:69), the full stracktrace will be logged in debug mode in the info.magnolia.cms.util.DeprecationUtil category. 

Eclipse將MailModule.getInstance()方法標記爲不推薦使用,但我不知道必須放置什麼。

有人可以幫助我嗎?

謝謝!

回答

0

好運行時,例如,我終於與此代碼解決這個問題:

protected void sendEmail(CommentDTO comment){ 
    if(comment!=null){ 
     try{ 
      MgnlMailFactory mailFactory = MailModule.getInstance().getFactory(); 
      if(mailFactory!=null){ 
       Map<String, Object> params = new HashMap<String, Object>(); 
       params.put("articleName", comment.getArticleName()); 
       params.put("id", comment.getId()); 
       params.put("commentText", comment.getComment()); 
       params.put("author", comment.getName()); 
       MgnlEmail mail = mailFactory.getEmailFromTemplate("myTemplate", params); 
       mail.setBodyFromResourceFile(); 


       if(mail!=null){ 
        MgnlMailHandler mmh = mailFactory.getEmailHandler(); 
        if(mmh!=null){ 
         mmh.prepareAndSendMail(mail); 

        } 
       } 
      } 
     }catch(Exception e){ 
      log.error("Error sending email: " +e.getMessage()); 
     } 
    } 
} 

我想這使其作品是這一行:

mail.setBodyFromResourceFile(); 

,當然,SMTP服務器的正常配置。