Autor Thema: Java-Agent -> Mailversandt -> falsche Adresse  (Gelesen 2144 mal)

Offline jor

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Männlich
Java-Agent -> Mailversandt -> falsche Adresse
« am: 22.03.06 - 12:51:38 »
Hallo zusammen,

vor einigen Wochen habe ich einen Java-Agent erstellt, der in der User-Mail-DB steckt und bei einkommenden EMails diese anpackt und an eine Internetadresse (vorname.nachmane@firma.de) schickt. Hat auch alles prima gefunzt, aber nun kommen die Dinger nur bis zu unserem Outlook-Server (bitte, bitte keine Fragen warum Notes und Outlook in einer Firma  :-[ ) am anderen Standort an und der meckert, weil in der Empfängeradresse die Lotus Notes-Adresse steht
(Vorname Nachname/OU/O@Domain), die er nicht zuordnen kann.
Wie kann ich es erreichen, das im Absender (vom Agenten) die Internetadresse eingetragen wird?

(Übrigens, wir machen das so, weil wir keine direkte Weiterleitung im Personendokument haben wollen, da dass sonst nicht mit dem Kalender & Freizeit  funzt. )

Gruß
Volker
Vereinfacht die Dinge, und ihr erleichtert euch das Leben. (Henry David Thoreau)

In diesem Sinne, viele Grüsse Volker (Jor)

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Java-Agent -> Mailversandt -> falsche Adresse
« Antwort #1 am: 22.03.06 - 15:49:14 »
Ja leider lieber Volker ist meine Kristallkugel defekt, aber wenn du mal den Code posten würdest, dann würden wir das Problem sicher schnell lokalisieren. Das was du da beschreibst halte ich für ziemlich unmöglich, ausser du manipulierst die Mailbox auf dem Server. Machst du das?

Grüße

Ralf
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline jor

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Männlich
Re: Java-Agent -> Mailversandt -> falsche Adresse
« Antwort #2 am: 22.03.06 - 17:10:02 »
Hallo Ralf,  ;D

isch weisssss,  ::)  ::), ok du hast es so gewollt, anbei mein Script  ;)

import lotus.domino.*;
import java.util.Vector;

public class JavaAgent extends AgentBase {

   public void NotesMain() {

      try {
            Session session = getSession();
            AgentContext agentContext = session.getAgentContext();
            String Empfänger = "vorname.nachname@firma.com";
            
            Database db = agentContext.getCurrentDatabase();
            DocumentCollection dc = agentContext.getUnprocessedDocuments();
            
               Document doc = dc.getFirstDocument();
            if( doc == null)
            {
               //System.out.println("Keine neue EMail vorhanden!\n");
            }              

               while (doc != null)
            {
               String Abs = "";
               String absender = "";                     
               String zeichen="";
               int pos = 0;
               int schritt=0;               
               
               //System.out.println(" ");
               //System.out.println("--- Neue EMail ---");
                   //System.out.println("    Org. Betreff: "+doc.getItemValueString("Subject"));
               //System.out.println("    Org. Absender: "+doc.getItemValueString("From"));
               // Wenn eine Interne Mail kommt...
               if(doc.hasItem("InetFrom")==true)
               {
                  Abs = doc.getItemValueString("InetFrom");
                  //System.out.println("    InetFrom: "+Abs);            
                  do
                  {
                     zeichen = Abs.substring(schritt, schritt+1);
                     schritt++;
                     //System.out.println("Zeichen: "+zeichen);
                  }               
                  while ( zeichen.equals("@") != true );                              
                  absender = Abs.substring(0,schritt-1);               
                  //System.out.println("    Neu Absender: "+absender);
               }
               else
               {   
                  // Wenn eine externe Mail kommt...

                  Abs = doc.getItemValueString("From");
                  //System.out.println("    From: "+Abs);
                  boolean pfeil = false;
                  String trenner;
                  int laenge = Abs.length();
                  for (int k=0; k<laenge;k++)
                  {
                     String t = Abs.substring(k,k+1);   
                     if( t.equals("<")==true)
                     {
                        pfeil=true;
                     }
                  }
                  
                  if(pfeil == false)
                  {
                     trenner="@";
                  }
                  else
                  {
                     trenner="<";
                  }

                  do
                  {
                     zeichen = Abs.substring(schritt, schritt+1);
                     schritt++;
                     //System.out.println("Zeichen: "+zeichen);
                  }               
                  while ( zeichen.equals(trenner) != true );                              
                  int abzug;
                  if(pfeil==true)
                  {
                     abzug=2;
                  }
                  else
                  {
                     abzug=1;
                  }                     
                  absender = Abs.substring(0,schritt-abzug);               
                  //System.out.println("    Neu Absender: "+absender);                  
               }
                              
                    Document memo = db.createDocument();
                    memo.appendItemValue("Form","Memo");
                    memo.appendItemValue("Subject", "Abs.: "+absender+" # "+doc.getItemValueString("Subject"));
                    memo.replaceItemValue("SendTo",Empfänger);               
               RichTextItem rti = memo.createRichTextItem("Body");
               doc.renderToRTItem(rti);
               Vector v = new Vector();
               v.addElement(Empfänger);
               memo.setEncryptOnSend(false);
               memo.setSaveMessageOnSend(false);
                    memo.setSignOnSend(false);            
                    memo.send(v);
                    agentContext.updateProcessedDoc(doc);
                    doc = dc.getNextDocument();
                    //System.out.println("Ende mit neuer Mail\n");   
            }            

         } catch(Exception e)
         {
            e.printStackTrace();
         }
   }
}
Ist in einer heissen Phase, in der ich eigentlich immer stecke  ;), geproggt worden, vielleicht gibt es ja auch grundlegende Verbesserungen für die Funktion (Bin Java-Newbie, also immer sachte mit der Kritik  ;) )
Gruß Volker
Vereinfacht die Dinge, und ihr erleichtert euch das Leben. (Henry David Thoreau)

In diesem Sinne, viele Grüsse Volker (Jor)

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Java-Agent -> Mailversandt -> falsche Adresse
« Antwort #3 am: 23.03.06 - 08:18:50 »
Hallo Volker!

Kein Problem, aber was mir jetzt noch fehlt, wo läuft der Agent und wie ist er getriggert. Ich denke mal, er läuft am Server und wird durch neue Mails getriggert. In dem Fall müsste er die mailadresse des Signers des Agents haben, oder den Server.

Ich würde einfach in dem Mail das Pricipal Feld mit der gewünschten Absenderadresse befüllen, dann sollte es passen. Für Details such mal in folgendem Link nach Principal http://www-128.ibm.com/developerworks/lotus/library/ls-Troubleshooting_agents_ND5_6/

Grüße

Ralf


Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline jor

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Männlich
Re: Java-Agent -> Mailversandt -> falsche Adresse
« Antwort #4 am: 23.03.06 - 11:12:03 »
Hallo Ralf,

der Agent läuft in der Mail-DB des Users und wird beim Eingang neuer Mails ausgeführt.
Ausgeführt wird er im Namen des Mail-DB-Besitzers.

Das "Principal-Feld" ist mir noch garncht aufgefallen, werde mal lesen.
Mmhh jetzt schonmal vor dem Lesen: Kann ich das einfach so beschreiben wie die anderen Felder?
Wird da auch die Adresse aus dem Personendokument eingetragen (bei normaler Mail)?

Grüße
Volker
Vereinfacht die Dinge, und ihr erleichtert euch das Leben. (Henry David Thoreau)

In diesem Sinne, viele Grüsse Volker (Jor)

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Java-Agent -> Mailversandt -> falsche Adresse
« Antwort #5 am: 23.03.06 - 11:21:49 »
Ja kannst du einfach so beschreiben. Ist ein ganz normales Feld. Man kann dort laut der Agent FAQ auch eine Internetadresse reinschreiben.

Grüße

Ralf
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline jor

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Männlich
Re: Java-Agent -> Mailversandt -> falsche Adresse
« Antwort #6 am: 23.03.06 - 11:37:37 »
 ^-^
das ist prima, werde es sofort heute Nachmittag ausprobieren und noch schreiben ob es auch der Outlook-Server begreift (  ;) ).

Ich danke dir!

Grüße
Volker
Vereinfacht die Dinge, und ihr erleichtert euch das Leben. (Henry David Thoreau)

In diesem Sinne, viele Grüsse Volker (Jor)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz