Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: zapfbay am 01.02.11 - 10:17:23

Titel: Betreff und Uhrzeit aus Mail auslesen
Beitrag von: zapfbay am 01.02.11 - 10:17:23
Hallo zusammen!

Ich stehe, glaube ich mal wieder gewaltig auf dem Schlauch!
Ich bin dabei einen Agenten zu schreiben, der aus eingehenden Emails das Sendedatum (DeliveredDate) und den Betreff (Subject) auslesen soll. Anschließend soll er die Anhänge der Mails auf c:\ speichern und die Dateien nach folgendem Muster umbenennen: DATUM_BETREFF_DATEINAME

Das mit dem Lösen der Anhänge bekomme ich ja noch hin, aber wie ich da jetzt Datum und Betreff reinbekomme ist mir als blutiger Anfänger ein Rätsel.

Danke schon mal für Eure Hilfe:

Code
		Dim session As New NotesSession 
	Dim db As NotesDatabase 
	Dim collection As NotesDocumentCollection  
	Dim doc As NotesDocument    
	Dim Zeit As String
	Dim Betreff As String
	
	Set db = session.CurrentDatabase      
	Set collection = db.UnprocessedDocuments      
	Set doc = collection.GetFirstDocument()      
	While Not(doc Is Nothing)          
		If doc.HasEmbedded Then   
			Set Zeit = doc.GetFirstItem("DeliveredDate")
			Set rtitem = doc.GetFirstItem("Body")              
			If ( rtitem.Type = RICHTEXT) Then                  
				Forall o In rtitem.EmbeddedObjects          
					fileCount = fileCount + 1
					If ( o.Type = EMBED_ATTACHMENT ) Then                          
						Call o.ExtractFile _  
						("c:\reports\"+ Zeit + "_" + Betreff + "_" +  o.Source) 
					End If                  
				End Forall              
			End If              
			Sleep 1              
			Set doc = collection.GetNextDocument(doc)          
		End If      
	Wend      
	collection.RemoveAll(True)    

Gruß Markus
Titel: Re: Betreff und Uhrzeit aus Mail auslesen
Beitrag von: Peter Klett am 01.02.11 - 10:20:18
doc.Subject (0) ist der Titel, doc.DeliveredDate (0) das Datum (wenn der Feldname stimmt, habe es nicht überprüft).

Als formatierten String ohne Uhrzeit kannst du z.B. schreiben

zeit = Format (doc.DeliveredDate (0), "dd.mm.yyyy")
Titel: Re: Betreff und Uhrzeit aus Mail auslesen
Beitrag von: ascabg am 01.02.11 - 10:20:37
Hallo,

Du kannst doch nicht in eine String-Variable (Zeit) ein Objekt einer Notes-Klasse instanziieren.

Wenn dann schon so (in der etwas ausfuerlicheren Variante)

Zeit = doc.GetItemValue("DeliveredDate")(0)


Andreas
Titel: Re: Betreff und Uhrzeit aus Mail auslesen
Beitrag von: Axel am 01.02.11 - 10:22:01
Auf die entsprechenden Felder kannst du mit doc.Subject(0) und doc.DeliveredDate(0) zugreifen. Den Rückgabewert des Datumsfeldes kannst du mit dem Format-Befehl erst in eine Zeichenkette umwandelt und dabei noch entspreched formatieren. Damit kannst du dann den Dateinamen zusammenbauen.

Axel
  
Titel: Re: Betreff und Uhrzeit aus Mail auslesen
Beitrag von: ascabg am 01.02.11 - 10:24:25
Und wenn schonmit dem Format-Befehl, dann wuerde ich in Bezug auf die Verwendung in einem Dateinamen dieses Format bevorzugen.

Zeit = Format(doc.GetItemValue("DeliveredDate")(0), "ddmmyyyy")


Andreas
Titel: Re: Betreff und Uhrzeit aus Mail auslesen
Beitrag von: koehlerbv am 01.02.11 - 10:30:45
Wegen der Sortierung sollte das Datum als yyyy-mm-dd angegeben werden.
Ausserdem berücksichtigt der Code nicht die Möglichkeit, dass mehrere Attachments gleichen Namens vorhanden sein können.
Es fehlt jegliches ErrorHandling -> ganz schlecht!

Vielleicht sollte man sich als "blutiger Anfänger" erstmal anderen Aufgaben widmen als den heute bisher geposteten Sachen ...

Bernhard
Titel: Re: Betreff und Uhrzeit aus Mail auslesen
Beitrag von: zapfbay am 01.02.11 - 10:31:13
Hallo zusammen!

Danke, Ihr habt mir sehr geholfen!

Gruß
Markus