Autor Thema: FROM bei EINGEHENDEN Mails ändern  (Gelesen 3263 mal)

Offline KoshNaranek

  • Senior Mitglied
  • ****
  • Beiträge: 292
  • Geschlecht: Männlich
  • wer Tippfehler findet, darf sie behalten
FROM bei EINGEHENDEN Mails ändern
« am: 14.01.10 - 00:10:25 »
Hallo.

Gibt es eine EINFACHE Möglichkeit, mittels Agent/Script was zu bauen, dass bei allen eingehenden Mails (einer Mailbox), die von "vorname.nachname@de.firma.com" kommen, das "@de.firma.com" durch "@firma.com" ersetzt wird, damit ein angehängtes System (IMAP) die "richtige" Adresse erkennt?

Mir schwebt da so was vor
ich schreib einfach mal spaghetti-code was ich meine
Notes-Script ist leider nicht so meins... in PHP würde das grob so aussehen
:
Bei eingehender Mail
---
//FROM aus Document auslesen
$From=Document.From
if (substring($From,-14)=="@de.firma.com") {
    $From=substring($From,0,len($From)-14)."@firma.com";
    //FROM in Document zurück schreiben
   Document.From=$From
   }

Es geht darum, dass ein mailverarbeitendes System nur eine Emailadresse vergleichen kann und nicht per LDAP oder sonstwie an die Aliases kommt. Bei dem entsprechenden Postfach würde ich dann einfach versuchen, "das" ein zu bauen.

Wenn mir das jemand in Lotus Script übersetzen und mir sagen könnte, wie ich den Agenten zusammen klicken muss, wäre das natürlich Super-Klasse ;-)
« Letzte Änderung: 14.01.10 - 19:17:46 von KoshNaranek »
..:: Guido ::..
3 Jahre R4.6 - Client-Support / 3 Jahre Pause von Notes / 6 Jahre Domino/Notes 6.5 und fast glücklich
aktuell R8.5.2FP3 Server mit 540 Usern

Der Schwung eines Pinsels erschafft noch kein geniales Gemälde.

Driri

  • Gast
Re: FROM bei EINGEHENDEN Mails ändern
« Antwort #1 am: 14.01.10 - 09:44:36 »
Via Agent in der Mailbox hast Du da keine Chance. Dafür ist der Router zu schnell.

Du müßtest also entweder irgendwie die Mails zur Verarbeitung umrouten, bearbeiten lassen und dann wieder dem Router übergeben oder Du greifst auf Tools zurück, die so etwas auch direkt in der Mailbox des Servers können (z.B. iQSuite von GROUP).

Offline KoshNaranek

  • Senior Mitglied
  • ****
  • Beiträge: 292
  • Geschlecht: Männlich
  • wer Tippfehler findet, darf sie behalten
Re: FROM bei EINGEHENDEN Mails ändern
« Antwort #2 am: 14.01.10 - 09:54:33 »
Hi - danke erstmal... =)
nicht die mail.box(en) auf dem Server.
Die Mailbox des Users ... in diesem Fall "User Helpdesk" ;-)

Da hängt ein TopDESK per IMAP dahinter - das kann aber halt die Aliases nicht abfragen und hat nur 1 Feld für Email-Adresse.
Das "verstubbeln" des "FROM" macht schon das SMTP-Gateway unsere Mama für uns - Es werden nämlich ALLE Header umgestrickt, statt nur das "TO". Was ich hier versuche, ist das wieder einzurenken, wenn es über das Internet hier rein rauscht. Die Berrys etc. schicken ja leider "außen rum". Da jetzt noch einen SMTP-Linux-Eumel dazwischen zu stöpseln auf dem ein Script die Header wieder hübsch macht wäre etwas zu viel Aufwand für diese "kleine" Unbill =)
..:: Guido ::..
3 Jahre R4.6 - Client-Support / 3 Jahre Pause von Notes / 6 Jahre Domino/Notes 6.5 und fast glücklich
aktuell R8.5.2FP3 Server mit 540 Usern

Der Schwung eines Pinsels erschafft noch kein geniales Gemälde.

Driri

  • Gast
Re: FROM bei EINGEHENDEN Mails ändern
« Antwort #3 am: 14.01.10 - 11:11:22 »
Ok, das würde ich dann aber einfach per @-Formel erledigen.

_domalt := "@de.firma.com";
_domneu := "@firma.com";
@ReplaceSubstring(@LowerCase(From);_domalt;_domneu)

Offline KoshNaranek

  • Senior Mitglied
  • ****
  • Beiträge: 292
  • Geschlecht: Männlich
  • wer Tippfehler findet, darf sie behalten
Re: FROM bei EINGEHENDEN Mails ändern
« Antwort #4 am: 14.01.10 - 12:54:48 »
schon mal sehr schön =) -
geht auch in php mit ereg_replace etwas "leichter", als abzählen - war ja schon spät - da laufe ich nur noch auf php3 ;-)

ich muß das "From" ja erst mal aus der Mail rauspicken, ersetzen und das veränderte Document wieder speichern... richtig?

Designer-Hilfe: ReplaceItemValue method - extended Class syntax - aber die Beispiele da sind ja nicht gerade praxisnah und sprechend...

bin ich denn da überhaupt richtig?

Wäre das mit

_domalt := "@de.firma.com";
_domneu := "@firma.com";
@ReplaceSubstring(@LowerCase(doc.From);_domalt;_domneu)

schon direkt lauffähig oder muß ich da erst noch was "Dim"men? Bis jetzt macht das Script nüx - nicht mal einen Fehler, wenn eine neue Mail kommt.

Habe es jetzt mal auf "aus dem Menü" gestellt. probiert... da rennt ein Balken durch aber die Mail bleibt unverändert...
« Letzte Änderung: 14.01.10 - 12:58:02 von KoshNaranek »
..:: Guido ::..
3 Jahre R4.6 - Client-Support / 3 Jahre Pause von Notes / 6 Jahre Domino/Notes 6.5 und fast glücklich
aktuell R8.5.2FP3 Server mit 540 Usern

Der Schwung eines Pinsels erschafft noch kein geniales Gemälde.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: FROM bei EINGEHENDEN Mails ändern
« Antwort #5 am: 14.01.10 - 13:02:46 »
Somit bewegst Du Dich im Script-Bereich.

Driri hat die andere Variante genommen mit dem @-Formel-Bereich.

Hier eine kleine Anregung in Bezug auf den Script-Bereich
Code
Sub Initialize
	
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument

Dim i As Integer
Dim strDomain As String
Dim strAdress As String

Set db = ses.CurrentDatabase
If db.IsOpen Then
	
  Set col = db.UnprocessedDocuments
  If col.Count > 0 Then
	
    For i = 1 To col.Count
      Set doc = col.GetNthDocument(i)
      If Not (doc Is Nothing) Then
        strDomain = Strright(Lcase(Trim(doc.GetItemValue("Form")(0))), "@")
        strAdress = Strleft(Trim(doc.GetItemValue("From")(0)), "@")
        If strDomain = "de.firma.com" Then
          strDomain = Strright(strDomain, ".")
          Call doc.ReplaceItemValue("From", strAdress & "@" & strDomain)
          Call doc.Save(True, False, False)
        End If
      End If
    Next			
  End If
	
End If
	
End Sub

Der Code hat keinen Anspruch auf Vollstaendigkeit, zumal es keine Fehlerbehandlung gibt.

Aber grob gesagt den Code in einen Agenten kopiert und den Agenten so eingestellt, dass er dann laeuft, wenn ein neues Mail eingeht.


Andreas

Offline KoshNaranek

  • Senior Mitglied
  • ****
  • Beiträge: 292
  • Geschlecht: Männlich
  • wer Tippfehler findet, darf sie behalten
Re: FROM bei EINGEHENDEN Mails ändern
« Antwort #6 am: 14.01.10 - 19:09:19 »
Ah... hatte erst jetzt Zeit zum basteln.

Vielen Lieben Dank an acabg.
Ich habe dein Script etwas umgeschrieben. Irgendwie wollte er die Domain nicht rausrücken.
Jetzt parke ich die Adresse in einem String zwischen ... alles FAST Schick ;)

Code
Sub Initialize
	
	Dim ses As New NotesSession
	Dim db As NotesDatabase
	Dim col As NotesDocumentCollection
	Dim doc As NotesDocument
	
	Dim i As Integer
	Dim strDomain As String
	Dim strAdress As String
	Dim strMadresse As String
	
	Set db = ses.CurrentDatabase
	If db.IsOpen Then
		
		Set col = db.UnprocessedDocuments
		If col.Count > 0 Then
			
			For i = 1 To col.Count
				Set doc = col.GetNthDocument(i)
				If Not (doc Is Nothing) Then
					strMadresse=doc.GetItemValue("From")(0)					
'					Messagebox strMadresse					
					strDomain = Strright(strMadresse, "@")
					strAdress = Strleft(strMadresse, "@")
'					Messagebox strAdress
'					Messagebox strDomain
					If Trim(Lcase(strDomain)) = "de.firma.com" Then
						strDomain = "firma.com"
'						Messagebox "Neu: " & Trim(strAdress) & "@" & Trim(strDomain)
						Call doc.ReplaceItemValue("From", strAdress & "@" & strDomain)
						Call doc.Save(True, False, False)
					End If
				End If
			Next			
		End If
		
	End If
	
End Sub

Es dauert ca. 2 Minuten, bis die Mail NACH dem Eingang umgestrickt wird... kann man das evtl. beschleunigen? Sonst holt es der IMAP-Client ggf. schon ab, bevor die Adresse berichtigt wurde...
« Letzte Änderung: 14.01.10 - 20:36:16 von KoshNaranek »
..:: Guido ::..
3 Jahre R4.6 - Client-Support / 3 Jahre Pause von Notes / 6 Jahre Domino/Notes 6.5 und fast glücklich
aktuell R8.5.2FP3 Server mit 540 Usern

Der Schwung eines Pinsels erschafft noch kein geniales Gemälde.

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: FROM bei EINGEHENDEN Mails ändern
« Antwort #7 am: 14.01.10 - 21:35:29 »
Die maximale Beschleunigung, die Du erreichen kannst, bekommst Du über die NOTES.INI-Einstellungen
AMGR_NEWMAILAGENTMININTERVAL=1
AMGR_NEWMAILEVENTDELAY=1

Mehr geht nicht - ansonsten gilt (wie üblich): "'Sofort' ist, wenn der Domino Zeit dafür hat!".

Wenn es dermassen kritisch ist, müsstest Du Dir wirklich einen Hook schreiben (lassen), der schon auf die MAIL.BOX des Dominos zugreift, bevor irgendetwas passiert.

Bernhard

PS: Ich würde vorher aber alles ausreizen, was diesen Adress-Verbiege-Stunt obsolet machen würde ...

Offline KoshNaranek

  • Senior Mitglied
  • ****
  • Beiträge: 292
  • Geschlecht: Männlich
  • wer Tippfehler findet, darf sie behalten
Re: FROM bei EINGEHENDEN Mails ändern
« Antwort #8 am: 15.01.10 - 09:17:36 »
...ich würde das auch gerne ausreitzen.
Kritisch ist es nicht - nur nervig ;) Schreib mal eine Regel, wenn jeder Anwender 3 - 4 Adressen hat.

Leider habe ich auf die Adressen, die da rein kommen erstmal keinen Einfluss.
Rein kommt alles in Paris - da steht eine Strickliesel, die ALLE Header nach ersetztbaren Email-Adressen durchsucht und ersetzt und die Mail dann auf die anderen Länder verteilt.

Ich könnte hier natürlich noch eine "Gegen-Strickliesel" dazwischen stellen - aber nur dafür ist mir der Aufwand zu groß - auch wenn ich dann wahrscheinlich bei unseren GF's einen Stein in Brett hätte - die verwirrt die Sache mit den "mehr als eine Emailadresse" doch erheblich  ;D - mind. 2 mal die Woche kommt die Frage, ob man das "de." nach draußen auch sieht, wenn wir Mails versenden =)
« Letzte Änderung: 15.01.10 - 09:26:13 von KoshNaranek »
..:: Guido ::..
3 Jahre R4.6 - Client-Support / 3 Jahre Pause von Notes / 6 Jahre Domino/Notes 6.5 und fast glücklich
aktuell R8.5.2FP3 Server mit 540 Usern

Der Schwung eines Pinsels erschafft noch kein geniales Gemälde.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz