- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mail vom Redaktionssystem (JavaClient) verschicken
Hallo,
aus Scripten verschicke ich eine Mail an den ausfรผrhrenden Redakteur (funktioniert bestens)
de.espirit.firstspirit.client.MailServiceImpl mailSer = (MailServiceImpl) context.getConnection().getMailService();
String absenderMail= ""+gs.getProjectProperties().getData().get("ps_absender_email").getEditor().get(mLang);
String absenderName = ""+gs.getProjectProperties().getData().get("ps_system_name").getEditor().get(mLang);
String absenderEMail = SABConvert.convertEmail(absenderName, absenderMail);
String EmpfMail=us.getConnection().getUser().getEMail();
de.espirit.firstspirit.access.MailHeader mHeader = new MailHeader(EmpfMail);
mHeader.sender=absenderEMail;
String Betreff = "setzen der Verlinkungen - ";
mailSer.sendMail(mHeader,Betreff,MailText,"html",false,(Attachment) null);
de.espirit.firstspirit.client.MailServiceImpl mailSer = (MailServiceImpl) context.getConnection().getMailService();
kann auch durch
de.espirit.firstspirit.access.MailService mailSer = (MailService) context.getConnection().getMailService();
ersetzt werden, funktioniert auch.
Nun wollte ich das in eine Klasse (und ein Modul) packen, da ich aus anderen Scripten auch Mails verschicke:
public boolean sendLinkMail(String LinkText, String Nummer) {
try{
String MailText="<!DOCTYPE HTML PUBLIC \"-W3CDTD HTML 4.0 TransitionalEN\">\n" +
"<html>\n<HEAD>\n"+
" <title>Fehlerhafte Links</title>\n"+
this.getStyle() +
"</HEAD>\n<body>\n"+
"<p><b>Linksetzung fรผr: " + Nummer + "</b></p>\n"+
"<p>" + LinkText + "</p>\n"+
"</body>\n</html>\n";
MailServiceImpl mailSer = (MailServiceImpl) this.ct.getConnection().getMailService();
String absenderMail= ""+gs.getProjectProperties().getData().get("ps_absender_email").getEditor().get(this.lang);
String absenderName = ""+gs.getProjectProperties().getData().get("ps_system_name").getEditor().get(this.lang);
String absenderEMail = SABConvert.convertEmail(absenderName, absenderMail);
String EmpfMail=this.us.getConnection().getUser().getEMail();
MailHeader mHeader = new MailHeader(EmpfMail);
mHeader.sender=absenderEMail;
String Betreff = "setzen der Verlinkungen - " + this.getSystem();
mailSer.sendMail(mHeader,Betreff,MailText,"html",false,(Attachment) null);
} catch(Exception E) {
this.error("Error sendLinkMail: " + E.getMessage());
this.setErrorStatus(true);
return false;
}
this.ct ist ProjectScriptContext (habs auch mit WorkflowScriptContextImpl versucht)
ich bekomme bei mailSer.sendMail einen Fehler.
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
So,
nachdem ich per DM die eigentliche Exception erfahren habe:
context.logError("Error sendLinkMail", e);
java.lang.NullPointerException
at de.espirit.firstspirit.server.mailmanagement.MailClientHandler.packParameter(MailClientHandler.java:20)
at de.espirit.firstspirit.io.DefaultClientHandler.packParameters(DefaultClientHandler.java:66)
at de.espirit.firstspirit.io.DefaultClientHandler.callManager(DefaultClientHandler.java:49)
Das Problem ist diese Zeile:
mailSer.sendMail(mHeader,Betreff,MailText,"html",false,(Attachment) null);
Die NullpointerException fliegt, weil Sie null als Attachment รผbergeben.
Es sollte so gehen:
mailSer.sendMail(mHeader,Betreff,MailText,"html",false);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Kรถnnen Sie noch ein paar mehr Infos posten. Fragen werfen diese Codestelle auf:
this.ct
gs.getProjectProperties()
Wann werden die Instanzvariablen ct und gs intitialisiert?
Wie und von wo wird die Methode sendLinkMail aufgerufen?
Kรถnnen Sie hier mal den kompletten Stack ausgeben, bitte:
catch(Exception e) {
context.logError("Error sendLinkMail", e);
this.setErrorStatus(true);
return false;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
der Konstruktor sieht wie folgt aus:
public RsMail(WorkflowScriptContextImpl context){
this.ct = context;
this.us = context.getUserService();
this.gs = (GlobalStoreRootImpl) us.getStore(de.espirit.firstspirit.access.store.Store.Type.forName("GLOBALSTORE"),false);
this.lang = context.getProject().getMasterLanguage();
}
Aufgerufen wird der aus einem Script:
RsMail Mail = new RsMail(context);
if(!Mail.sendLinkMail(LINKS.getMailtext(), Nummer)){
log.WFError("Fehler beim Mailversenden: " + Mail.getError());
}
gs.getProjectProperties()
holt Einstellungen von den Projekteinstellungen (also Email, etc.) Die werden auch geholt.
Den Stacktrce habe ich im zweiten Posting schon angehangen (hatte zu zeitig das erste abgeschickt)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
So,
nachdem ich per DM die eigentliche Exception erfahren habe:
context.logError("Error sendLinkMail", e);
java.lang.NullPointerException
at de.espirit.firstspirit.server.mailmanagement.MailClientHandler.packParameter(MailClientHandler.java:20)
at de.espirit.firstspirit.io.DefaultClientHandler.packParameters(DefaultClientHandler.java:66)
at de.espirit.firstspirit.io.DefaultClientHandler.callManager(DefaultClientHandler.java:49)
Das Problem ist diese Zeile:
mailSer.sendMail(mHeader,Betreff,MailText,"html",false,(Attachment) null);
Die NullpointerException fliegt, weil Sie null als Attachment รผbergeben.
Es sollte so gehen:
mailSer.sendMail(mHeader,Betreff,MailText,"html",false);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
funktioniert bestens. hab mal wieder die Api nicht richtig gelesen ...
Vielen Dank

