Benachrichtigung von Usern über Email-Adresse


#1
Hallo Leute,

ich habe eine Frage, ich habe ein Code um die user zu benachrichtigen wenn ein neue Akte im System angelegt wird, das funktioniert gut, aber ich muss jetzt es so ändern, wenn die User der Benachrichtigung empfangt, sollte die nicht mehr die Email-Adresse von den anderen Usern sehen.
vielleicht könnte jemandem mir helfen.

alles passiert an der Stelle

Java:
           logger.debug(mailBody);
           List<User> userList = usrService.getAllDomainActiveUsers(USER_DOMAIN);
           List<String> groupUser = new ArrayList<String>();
           
           for(String grp:GROUP_USER){
               Group group = usrService.getGroup(grp, USER_DOMAIN);
               List<String> members = usrService.getHierarchicalMemberIds(group.getPrincipalId());
               groupUser.addAll( members );
               }
           
           List<String> principals = new ArrayList<String>();
           logger.debug("bereite Mailversand an:"+userList.size()+" User vor");
           for (User usr:userList){
               principals.add(usr.getPrincipalId());
           }
           
           Email email;
           if(groupUser.size() > 0){
               email = new Email(MAIL_SUBJECT, mailBody, groupUser, new ArrayList<String>(),true);
           }else{
               email = new Email(MAIL_SUBJECT, mailBody, principals, new ArrayList<String>(),true);
           }
           
           colService.sendEmail(null, email, null);
           
       
           logger.debug("Mail erfolgreich verschickt, Akte verarbeitet markieren");
           for (ResourceKey curResKey:resKeyToBeUpdated){
               repService.updateProperties(curResKey, updProps);
           }
       }
habe ich es so wie unter geändert, leider klappt es nicht, benachrichtigt zwar jede User, kann die User die Email-Adresse von anderen nicht sehen, leider werden die Akte die schon mal benachrichtigen, erneut benachrichtigen, d.h. zum Beispiel:
vorgesten wurde die Akte "Hallo" angelegt und benachrichtigt
gestern die Akte "Paul" angelegt und benachrichtigt
heute die Akte "Raul" angelegt
dann so sieht die Benachrichtigung
Hallo
paul
Raul
wurde angelegt.
eigentlich sollte nur benachrichtigen, dass "Raul" wurde angelegt
und nicht die ganze Akte auflisten.
Das wäre sehr nett wenn jemandem mir Hilft.
Vielen Dank in Voraus


Code:
List<User> userList = usrService.getAllDomainActiveUsers(USER_DOMAIN);
           List<String> groupUser = new ArrayList<String>();
           

           for(String grp:GROUP_USER){
                Group group = usrService.getGroup(grp, USER_DOMAIN);
                List<String> members = usrService.getHierarchicalMemberIds(group.getPrincipalId());

                for(String member : members) {
                     Email email = new Email(MAIL_SUBJECT, mailBody, Arrays.asList(member), new ArrayList<String>(), true);
                     colService.sendEmail(null, email, null);
                }   
           }
           
           List<String> principals = new ArrayList<String>();
           logger.debug("bereite Mailversand an:"+userList.size()+" User vor");
           for (User usr:userList){
               principals.add(usr.getPrincipalId());
           }
           

           for(String principal : principals) {
               Email email = new Email(MAIL_SUBJECT, mailBody, Arrays.asList(principal), new ArrayList<String>(),  true);
           }
 
#3
Hi

was für eine Email-Klasse ist das?

Jedenfalls, es muss eine Möglichkeit gefunden werden, BCC anzugeben...
Hi Sheel,
eigentlich mit der Iteration war schon gut gedacht leider frage ich mich warum holt er sich die alte Info wieder.

also unser Framework bieten uns die folgende

Constructor Detail
  • Email
    public Email()
    The default constructor.
  • Email
    public Email(String subject,
    String message,
    String toPrincipalId)
    Creates an email with given parameters.
    Parameters:
    subject - the subject
    message - the message body
    toPrincipalId - principal id of recipient
  • Email
    public Email(String subject,
    String message,
    List<String> toPrincipalIds,
    List<String> ccPrincipalIds,
    boolean htmlMessage)
    Creates an email with given parameters.
    Parameters:
    subject - the subject
    message - the message body
    toPrincipalIds - principal ids of recipients
    ccPrincipalIds - principal ids of recipients of carbon copy
    htmlMessage - indication whether email has html style
 
#4
Hallo Leute,
bitte schaut ihr den ersten Stückcode ich möchte über die Gruppe User iterieren leider gelingt es mir nicht vielleicht kann jemandem mir helfen
dh.

Java:
for(String member : groupUser){
                   //to do
                }