Beiträge von Concara

    OK ich habe es herausbekommen.


    Man muss natürlich die Attachments ansprechen.

    Hier also der funktionierende Code ohne extra die Eigenschaften der Attachments auszulesen.

    Hier der Code der soweit das macht, was ich erreichen will.

    Die Bilder Outlook.png und The_Outlook.jpg müssen dazu im Scriptordner vorhanden sein.

    Beide sind in der OutlookUDF von Water enthalten.

    Hallo Water!


    Mit deinem Code erhalte ich:


    Was ich auch nicht ganz verstehe ist warum deine Funktion _OL_ItemAttachmentAdd nicht das Attachmentobject zurück gibt?

    Laut dem Beschreibungstext der Funktion sollte das doch sein?

    Damit sollte man doch auch PropertyAccessor setzen können?

    Das Beispiel unten funktioniert aber nicht.

    Ca. so:

    AutoIt
    $oItem = _OL_ItemAttachmentAdd($oOutlook, $oMail, Default, $sPicturePath & ", 1, 0")
        If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error adding an attachment to the mail item. @error = " & @error & ", @extended = " & @extended)
    $oItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", $ContentID)

    Ich hab jetzt wieder die deine _OL_ItemAttachmentGet missbraucht.

    Kannst du mir da einen "sauberen" Weg zeigen, wie man "http://schemas.microsoft.com/mapi/proptag/0x3712001E" setzt


    Wenn man "http://schemas.microsoft.com/mapi/proptag/0x3712001E" setzt dann schaut das sehr gut aus mit Outlook Thunderbird und K-9

    Moombas

    Danke für deinen Beitrag. Das habe ich auch schon gemacht. An der HTML liegt es nicht.


    water

    Bei dir klinkt das immer so einfach :)

    Wie mach ich das?


    Ich habe versucht deine _OL_ItemAttachmentGet Funktion zu erweitern.

    Aber aus Mangel an Wissen funktioniert das nicht.


    @GM

    Ja das habe ich schon gemacht.


    Ich brauch so was denke ich nur habe ich keine Ahnung wie ich das umsetzt:

    Code
    //CONTENT-ID
                        const string schemaPrAttachContentId = @"http://schemas.microsoft.com/mapi/proptag/0x3712001E";
                        var contentId = Guid.NewGuid().ToString();
    
                        mail.Attachments.Add(imagePath, OlAttachmentType.olEmbeddeditem, mail.HTMLBody.Length, Type.Missing);
                        mail.Attachments[mail.Attachments.Count].PropertyAccessor.SetProperty(schemaPrAttachContentId,
                                                                                              contentId);

    Schnuffel #10

    Ja stimmt schon. Hierfür braucht man halt einen Webserver. Diesen zu betreiben ist mir der Aufwand nicht wert.


    water

    Mein Testcode ist so genau dein Beispielscript.


    Ich vermute, dass man dem Attachment einen Parameter mitgeben muss damit es nicht als normales Attachment wahrgenommen wird.

    Hättest du eine Ahnung wie ich das hier umsetzen kann mit deiner UDF

    PropertyAccessor.SetProperty method (Outlook)
    Office VBA reference topic
    docs.microsoft.com


    Code
    attachment.PropertyAccessor.SetProperty
        ( "http://schemas.microsoft.com/mapi/proptag/0x3712001E"
        , imageCid
        );

    Hallo!


    Ich würde gerne Emails per Outlook versenden, die ein Bild im Text enthalten. (HTML Body)

    Das ist Erstellen und Versenden funktioniert auch wunderbar dank Waters OutlookEX UDF.

    Die erstellten Mails enthalten auch das Bild und in Outlook werden sie auch richtig dargestellt, nur mit der Büroklammer als Schönheitsfehler.

    In anderen Mailclients wird das Bild aber überhaupt nicht in der Email dargestellt sondern "nur" als Anhang.


    Water wurde dazu schon vor mehr als 10 Jahren im Englischen Forum tätig.

    Dort hatte er auf die Webseite http://www.outlookcode.com verwiesen. Beitrag aus dem englischen Forum

    Diese ist leider nicht mehr verfügbar und somit konnte ich nicht nachsehen.


    Hat jemand von euch eine Idee wie ich das Bild als Anhang einbinde damit es im Text sichtbar ist und nicht als Anhang selber zum Downloaden angeboten wird.

    Hier mein Testcode:

    Bei dem Hinweis von BugFix ist aber wichtig das Kleingedruckte in der Hilfe zu lesen. :)

    Und ich bin heil froh, dass es so ist, sonst wäre das eine recht große Sicherheitslücke meiner Meinung nach.


    Zitat

    aus der Hilfe:


    Running Scripts

    Important Notes

    However, the executable must have been compiled with the #pragma compile(AutoItExecuteAllowed, True) directive as the default setting does not permit use of the /AutoItExecuteScript or /AutoItExecuteLine parameters. Moreover, since the interpreter stub searches for any required standard #include files in its current folder, UDF functions and various constants may not be available as those files are normally only found in the full AutoIt install. It is therefore recommended that any scripts intended to be run in this manner are compiled to the .a3x format rather then being left as plain .au3 text files

    Correct usage of single and double quotation marks is important when using the command line - even for double single quotation marks.

    Hi!


    Hier Code mit dem ich ein ähnliches Projekt realisiert habe.

    Ich denke du solltest aber mit der Funktion zurecht kommen.

    Geh den Loginvorgang mit dem developer Mode durch und erstelle die Requests genau so.

    Auszug aus der Seite die du verlinkt hast (

    In Chrome go to the View menu - Developer - Developer Tools and the Dev panel should open to the right hand side. Under the Network Tab then Headers Tab you will see the Request Headers Section, your Authorization token can be found here. Copy this for use later

    )

    Eventuell passt du den Header in der Funktion noch an.

    Sollte aber nicht unbedingt notwendig sein.


    Mir ist aufgefallen, dass man oft nicht alle Requests braucht, soll heissen, Seite aufrufen erster Request meist erhält man dann das Cookie das man braucht um dann direkt den Login Request abzusetzen.

    Und alle Requests dazwischen sind nicht nötig.

    Du weißt aber schon, dass das nicht zwingend notwendig ist?

    Solange es mit einem gültigen Zeitstempel signiert wurde.

    Mit Powershell geht es auch


    Get-AuthenticodeSignature C:\Windows\explorer.exe | Format-List


    Array0 Zertifikat Beginn

    Array1 Zertifikat Ende

    Array2 Timestamp Beginn

    Array3 Timestamp Ende

    Ich nehme mal an ihr signiert eure Files mit SignTool.exe von Microsoft!?

    Damit kann man das auch überprüfen.

    SignTool verify /?

    Es kann oft so einfach sein.

    Man muss nur genau lesen :)

    Falls jemand auch das Problem hat, den Zeitpunkt, wann ein Registry Key das letztemal verändert wurde, remote, auszulesen.

    Hier ein Beispiel:

    Ich habe da ein Script gefunden für Powershell:

    Externer Inhalt gist.github.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Anscheinend funktioniert das aber Remote auch nicht. (siehe Post dort)

    Ich habe es nicht mal lokal zum funktionieren gebracht.

    Ist jemand von euch fähig so etwas in Autoit umzusetzen?

    Wie geht man da vor?

    Es scheinen Dll Aufrufe zu sein. (advapi32.dll)