Autor Thema: LS mail + Attachment  (Gelesen 2947 mal)

Offline cookiethecake

  • Frischling
  • *
  • Beiträge: 15
LS mail + Attachment
« am: 23.09.13 - 14:58:49 »
Hey Leute ich bin hier echt am durchdrehen!.... Die Tastatur machts nicht mehr lange mit..

Ziel: Ich will eine mail verschicken mit Attachement. Das Attachement soll aus einem anderen Dokument kommen.

Das habe ich:

Code
        Dim obj As NotesEmbeddedObject
	Dim obj2 As NotesEmbeddedObject
	
	Dim session As New Notessession
	Dim db As NotesDatabase
	Dim ViewAgenda As NotesView
	Dim dcAgenda
	Dim docAgenda As NotesDocument
	
	
	Set db = session.CurrentDatabase
	Set maildoc = New NotesDocument(db) 
	Set viewAgenda = db.GetView("Agenda")
        Set docAgenda = viewAgenda.GetFirstDocument
        maildoc.Form = "Memo"
	maildoc.SendTo = "xxxxx xxxxx"
	maildoc.Subject = "Teilnahmebestätigung"
	
	
	Set rtitem = New NotesRichTextItem( maildoc, "Body" )
        Set obj = rtitem.EmbedObject(EMBED_ATTACHMENT, "", docAgenda.GetAttachment("Anleitung - Mailarchivierung.pdf"))

In docAgenda ist das Dokument was ich anhängen will..
Mein Code sieht mittlerweile aus wie Arsch weil ich da am rumprobieren bin wie n Ochs vorm Berg!!!

Jedes mal der verdammte Type missmatch :(
« Letzte Änderung: 26.09.13 - 13:31:11 von cookiethecake »

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: LS mail + Attachment
« Antwort #1 am: 23.09.13 - 15:15:54 »
Hallo,

Zitat
Jedes mal der verdammte Type missmatch
Und wann kommt dieses "verdammte Type missmatch"?


Andreas

Offline cookiethecake

  • Frischling
  • *
  • Beiträge: 15
Re: LS mail + Attachment
« Antwort #2 am: 23.09.13 - 15:21:30 »
letzte Zeile-

Driri

  • Gast
Re: LS mail + Attachment
« Antwort #3 am: 23.09.13 - 15:23:18 »
EmbedObject erwartet an der Stelle auch einen String, Du übergibst aber ein Objekt. Der Fehler ist also nur logisch.

Meiner Erfahrung nach funktioniert so etwas nur, wenn man die Datei aus dem Ursprungsdokument auf die Festplatte löst, dann an der neue Dokument anhängt und anschließend wieder von der Platte löscht.

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: LS mail + Attachment
« Antwort #4 am: 24.09.13 - 10:27:07 »
Oder Du machst ein appendrtitem und nimmst das ganze Quell-Richtextfeld mit dem Anhang mit, das wäre wohl am einfachsten, würde aber auch alles ggf. Vorhandene rund um den Anhang weiterleiten...
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Offline cookiethecake

  • Frischling
  • *
  • Beiträge: 15
Re: LS mail + Attachment
« Antwort #5 am: 26.09.13 - 12:15:00 »
Hallo leute,

Danke erst mal!

@Driri: Haste n paar Anläufe für mich? Wie speicher ich das Attachment auf C:? :)
@maschul: leider ist deine Vermutung wahr geworden, er nimmt alles außer das $FILE...

@All: wird man mit einem Richtextfield Lite die Idee von maschul durchbringen können?
Habe leider nicht sofort die möglichkeit das einfach auf ein RTFLite zu ändern weil das Dokument auch von anderen Agenten benutzt wird....

DANKE!

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: LS mail + Attachment
« Antwort #6 am: 26.09.13 - 12:20:26 »
Hallo,

Zitat
@Driri: Haste n paar Anläufe für mich? Wie speicher ich das Attachment auf C:? Smiley
Nicht von Driri aber von mir.

Die Designer-Hilfe und hier die Klasse NotesEmbeddedObject.


Andreas

Offline cookiethecake

  • Frischling
  • *
  • Beiträge: 15
Re: LS mail + Attachment
« Antwort #7 am: 26.09.13 - 13:30:17 »
Danke an Alle... Ich habs :-)

Für die Nach welt:

Code
Dim obj As NotesEmbeddedObject
	
	Dim session As New Notessession	
	Dim db As NotesDatabase
	Dim ViewAgenda As NotesView
	Dim docAgenda As NotesDocument
	
	
	Set db = session.CurrentDatabase
	Set maildoc = New NotesDocument(db) 
	
	Set viewAgenda = db.GetView("Agenda")
	Set docAgenda = viewAgenda.GetFirstDocument
	maildoc.Form = "Memo"
	maildoc.SendTo = "maxi mustermännchen"
	maildoc.Subject = "Teilnahmebestätigung"
	
	
	Dim rtitem As Variant
	Dim fileCount As Integer
	Const MAX = 100000
	fileCount = 0    
'...set value of doc...
	Set rtitem = docAgenda.GetFirstItem( "Agenda" )
	If ( rtitem.Type = RICHTEXT ) Then
		Forall o In rtitem.EmbeddedObjects
			If ( o.Type = EMBED_ATTACHMENT ) _
			And ( o.FileSize > MAX ) Then
				fileCount = fileCount + 1
				Call o.ExtractFile _
				( "c:\agenda.pdf") '& Cstr(fileCount) )
				Call o.Remove
				'Call doc.Save( True, True )
			End If
		End Forall
	End If
	
	
	
	Set rtitem = New NotesRichTextItem( maildoc, "Body" )
	Set obj = rtitem.EmbedObject(EMBED_ATTACHMENT, "",  "c:\agenda.pdf")
	
	maildoc.send(False)
	
	
	Kill "c:\agenda.pdf"
End Sub

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: LS mail + Attachment
« Antwort #8 am: 26.09.13 - 13:48:49 »
Ich frag dann doch noch mal etwas.

Soll der Anhang im Original-Dokument (von wo Du diesen extrahierst) geloescht werden?
Was passiert mit den eventuell vorhandenen andern Anhaengen nach dem extrahieren?
(die Agenda loescht Du ja wieder)
Und da wir gerade bei mehreren Anhanengen sind.
Dir ist schon bewusst, das beim extrahieren des 2. Anhanges die Datei auf C:\, die durch das
extrahieren des 1. Anhanges schon vorhanden ist, wieder ueberschrieben wird.

Was passiert, wenn im Original-Dokument ueberhaupt kein Anhang vorhanden ist?


Andreas
« Letzte Änderung: 26.09.13 - 13:56:43 von ascabg »

Offline Ayhan

  • Aktives Mitglied
  • ***
  • Beiträge: 102
  • Geschlecht: Männlich
  • Geht immer!
    • fabrique d' images ebusiness GmbH
Re: LS mail + Attachment
« Antwort #9 am: 02.10.13 - 10:11:45 »
Eine weitere Möglichkeit (ohne den Anhang auf der Festplatte zwischenzuspeichern: braucht man ja gleich mehr berechtigungen etc - vorallem auf serverebene) das originaldokument zu kopieren, unnötige items zu entfernen, neue items hinzufügen (subject etc) und diese dann zu schicken. Ist weniger fehleranfällig.

Natürlich eben nur dann, wenn die Möglichkeit besteht, das Originaldokument zu kopieren.
Ayhan

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz