mail per button

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

queensix
Beiträge: 9
Registriert: Do, 16.03.2006 16:00

mail per button

Beitrag von queensix »

so, hier ein anderes problem:
hab es bisher nur geschafft, eine mailprozedur aufzurufen. (Datei ist angehängt).
wie gibt man aber gleich eine adresse und betreff an, sodaß der user nur noch auf "senden" gehen muß? - haben viele kollegen, die immer vergessen, die datei anzuhängen...grrr.

dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SendMail", "", 0, Array())

kann mir jemand helfen?
gruß queensix
RS
*******
Beiträge: 1088
Registriert: Fr, 14.01.2005 10:27

Beitrag von RS »

Hallo,

ich habe dieses Problem ohne Makro gelöst, und zwar über eine Formularschaltfläche. Über die Eigenschaften der Schaltfläche, Reiter Kontrollfeld habe ich die Punkte Aktion und URL entsprechend angepasst, so dass sich bei Anklicken dieser Schaltfläche eine "fertige" E-Mail öffnet, mit Empfängeradresse, Betrefftext und sogar schon einem Standardtext.

Vielleicht hilft Dir mein Lösungsansatz ja weiter.

Gruß,

Rebecca
queensix
Beiträge: 9
Registriert: Do, 16.03.2006 16:00

Mailversand per button

Beitrag von queensix »

hallo rebecca!
vielen dank für die antwort, das habe ich noch nicht probiert...
jedoch gibts da ein problem: alle mitarbeiter aus 25 filialen anweisen, diese schaltfläöche zu erstellen...grrr - das geht 100%ig schief. ich wollte halt im dokument eine schaltfläche "mail" - anklicken und fertig, sozusagen dau-sicher, lach.
bin durch googeln dahin gekommen:

ocalc=thiscomponent
oMailer = createUnoService( "com.sun.star.system.SimpleSystemMail" )
MailProgramm = omailer.querySimpleMailClient()
NeueNachricht = MailProgramm.createSimpleMailMessage()
MailAdresse="empfängerxxxx"
thema="betreffxxxx"
NeueNachricht = MailProgramm.createSimpleMailMessage()
NeueNachricht.setRecipient(MailAdresse)
NeueNachricht.setSubject(thema)
Dim attachs(0)
attachs(0)=ocalc.url
NeueNachricht.setRecipient(MailAdresse)
NeueNachricht.setAttachement(attachs())
MailProgramm.sendSimpleMailMessage(NeueNachricht,0)

Problem:"Basic Laufzeitfehler, Es ist eine Exception aufgetreten.
Type:com.sun.star.uno.Exception. Message:Send email failed"
liegt an der letzten code-zeile

und ich hab keine ahnung warum.... :evil:
gruß queensix
queensix
Beiträge: 9
Registriert: Do, 16.03.2006 16:00

Beitrag von queensix »

noch ne möglichkeit, scheitert am selben problem..s.o. gleiche meldung

ocalc=thiscomponent
oMailer = createUnoService( "com.sun.star.system.SimpleSystemMail" )
MailProgramm = oMailer.querySimpleMailClient()
NeueNachricht = MailProgramm.createSimpleMailMessage()
NeueNachricht.setRecipient("versicherung@hoergeraete-isma.de")
NeueNachricht.setSubject("Versicherungsmeldung")
Dim attachs(0)
attachs(o)=ocalc.url
NeueNachricht.setAttachement(attachs())
MailProgramm.sendSimpleMailMessage(NeueNachricht,0)
RS
*******
Beiträge: 1088
Registriert: Fr, 14.01.2005 10:27

Beitrag von RS »

Hallo,

Dein Makro Nr. 1 von heute funktioniert bei mir einwandfrei!

Ich habe die gesamte Syntax "einfach" kopiert, es öffnete sich eine neue Nachricht, und ich hätte das Ganze ohne Probleme senden können.

Daher scheint die Syntax zu stimmen. Ich gehe daher eher davon aus, dass irgendetwas an der E-Mail-Programm-Konfiguration nicht stimmt. Kannst Du denn aus OO per Button bzw. Menü direkt E-Mails versenden, oder kommen da auch Fehlermeldungen?

Mehr kann ich Dir dazu leider nicht sagen, dazu bin ich zuwenig "Fachfrau", sorry, viel Glück,

Gruß,

Rebecca
queensix
Beiträge: 9
Registriert: Do, 16.03.2006 16:00

Beitrag von queensix »

hi rebecca!
also ich habe es jetzt sogar noch an einem anderen rechner getestet (man weiß ja nie!) - selbe problem...
die mailfunktion über den button im menü von OO funktioniert, keine beanstandung...
da steh ich nun ich armer tor........

greez
queensix
cldi
*
Beiträge: 11
Registriert: Do, 09.11.2006 18:02

Einzelne Sheets als Anhang versenden

Beitrag von cldi »

Hallo,

ich schreibe es zu diesem Beitrag hinzu, da ich den attach-Teil von hier übernommen habe.

Es klappt wunderbar die gesamte Calc Mappe damit zu versenden, jedoch schaffe ich es nicht, dass er mir nur ein Sheet (das über den Index von dem Benutzer ausgewählt wird) zu versenden.

Mein bisheriger Code:

Code: Alles auswählen

Sub MailVersenden

' Variablen Deklaration
Dim oMailer as object
Dim MailProgramm as variant
Dim NeueNachricht as variant
Dim oCalc as Object 
Dim sBetreff as String
Dim sEmpfaenger As String

  ocalc=thiscomponent
 
 'Plattformunabhängigkeit
	If GetGuiType = 1 Then
        oMailer = createUnoService("com.sun.star.system.SimpleSystemMail")'für Windows-Systeme
    ElseIf GetGuiType = 4 Then
         oMailer = createUnoService("com.sun.star.system.SimpleCommandMail")'für Unix-Systeme
    Else
      MsgBox "Bitte die Mail-Einstellungen überprüfen", 16           
   End If
   
     
    'Message
   MailProgramm = oMailer.querySimpleMailClient()
   NeueNachricht = MailProgramm.createSimpleMailMessage()
   sEmpfaenger = "mail@xxx.de"
   NeueNachricht.setRecipient(sEmpfaenger)
    sBetreff = "test"
   NeueNachricht.setSubject(sBetreff)
   
   'Anhang
   Dim attachs(0)
	attachs(0)=ocalc.url
	Sheetsnumber=Inputbox("Welches Blatt soll versendet werden?", "Einzelnes Blatt versenden")
   rem  Bitte laufende Blattnummer eingeben (siehe Uebersichtssseite)
   myDoc = ThisComponent
   myView = myDoc.CurrentController
   mySheet = myDoc.Sheets(Sheetsnumber)
        rem myView.setActiveSheet(mySheet)
	rem NeueNachricht.setRecipient(sEmpfaenger)
   NeueNachricht.setAttachement(attachs())
   Mailprogramm.sendSimpleMailMessage(NeueNachricht, 0 )
End Sub 
Weiterhin habe ich noch eine Frage zu folgender Fehlermeldung:

com.sun.star.RuntimeExceptionScriptProtocolHandler::createScriptProvider()

createScriptProvider(): bedeuted dies, dass der Mail Client nicht gefunden wird?
Es wird ohne weitere Probleme Outlook geöffnet, die Meldung kommt mittlerweile auch nicht jedesmal, weiss aber nicht was ich gemacht habe, dass sie nicht mehr jedesmal kommt ;)

Kann mir jemand weiterhelfen?

Danke schon mal für die Hilfe
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo
Es können vermtl. nur Komplettdokumente als Mail-anhang versendet werden.

Vielleicht reichts dir ja das selektierte Tabellenblatt als pdf-Datei zu exportieren(unter gleichen Namen in den gleichen Ordner) und im Makro den Pfad entsprechend anzupassen.

Code: Alles auswählen

....
dim pdfurl
pdfurl = replace(ocalc.url,"ods","pdf")
attach(0) = pdfurl
...
Gruß Karo
teamdj
Beiträge: 9
Registriert: Fr, 20.04.2018 07:09

Re:

Beitrag von teamdj »

RS hat geschrieben: Di, 21.03.2006 11:56 Hallo,

ich habe dieses Problem ohne Makro gelöst, und zwar über eine Formularschaltfläche. Über die Eigenschaften der Schaltfläche, Reiter Kontrollfeld habe ich die Punkte Aktion und URL entsprechend angepasst, so dass sich bei Anklicken dieser Schaltfläche eine "fertige" E-Mail öffnet, mit Empfängeradresse, Betrefftext und sogar schon einem Standardtext.

Vielleicht hilft Dir mein Lösungsansatz ja weiter.

Gruß,

Rebecca
Hallo Rebecca,
Das würde ich auch gerne hinbekommen.
Ich habe eine Cal Tabelle in der ich gerne eine email senden Funktion einbauen möchte aber gerne ohne Markro.
am besten wäre folgendes:
Wenn in der Zelle E22 der wert kleiner als 75 ist dann soll ein Button erscheinen (email senden)
wenn auf diesen geklickt wird soll dann nur das aktive Arbeitsblatt an eine vorgegebene Adresse, am besten
schon mit ausgefüllter Betreffzeile sowie mit vordefiniertem Text versendet werden.
Im Anhang der email selbstverständlich das Tabellenblatt (am besten als PDF-Datei ist aber nicht zwingen notwendig)

wie kann ich das realisieren ?

Gruß
Stefan
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: mail per button

Beitrag von Hiker »

Hallo Stefan,

ob Rebecca nach 13 Jahren noch mitliest?

Also besser einen neuen Threads aufmachen und vorher in der Forensuche E-Mail eintippen - das Thema kommt häufiger vor.

Eine Lösung - mailto: in Hyperlink verpackt -findest Du hier
https://www.libreoffice-forum.de/viewto ... c44b4130c7

Schaltfläche nur bei Bedarf solltest Du in einem neuen Thread klären.

Mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Antworten