Mehrere E-Mails über Outlook mittels Python senden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
tretol
User
Beiträge: 4
Registriert: Mittwoch 26. September 2018, 20:55

Hallo,
ich muss auf der Arbeit viele Mails schreiben, was viel Zeit frisst. Die E-Mails sind immer gleich (gleicher Nachrichtnetext, gleiche Empfänger), aber die anhänge unterscheiden sich.
Ich wollte das deshalb automatisieren, sodass jeder Kunde Mails mit den entsprechenden Anhängen bekommt.

Soweit bin ich gekommen (bin Anfänger):

Code: Alles auswählen

import win32com.client as win32
import os

CLdict = dict() #Kontaktliste, die später die Namen des Kunden und ihre E-Mail-Adressen enthält. Format z.B.: SAP=et1@sap.de; et2@sap.de (siehe Kontakte.txt)
dict2=dict()			#Hier werden später die Anhänge den Kunden zugeordnet.
fin = open("Kontakte.txt")
zeilenzähler = 0
for zeile in fin:
        zeilenzähler += 1
        for zeile2 in zeile.split("="):
             CLdict[zeile.split("=")[0]]=zeile.split("=")[1]		#Kundennamen und E-Mail-Adressen werden gesplittet und im Dictionary gespeichert.
            dict2[zeile.split("=")[0]]=list()					#Kundennamen werden im Dictionary gespeichert
                          
       
    

outlook = win32.Dispatch('outlook.application')


for filename in os.listdir():			#Hier werden die Dateinamen im Ornder mit den Anhängen für alle Kunden durchsucht.
    for k in CLdict:
        if k in filename:	#Wenn der Kundenname im Dateinamen vorkommt, sollen die Dateinamen dieser Anhänge als Wert im Dictionary mit dem Kundennamen-Schlüssel gespeichert werden.
            dict2[k].append(filename)
            
mail = outlook.CreateItem(0)

mail.Subject = 'testüberschrift'

#Hier sollen die unterschiedlichen Anhänge für die jeweiligen Kunden derselbsen Mail angehängt werden. Beim nächsten Durchlauf der Schleife (= beim nächsten Kunden soll eine neue Mail geschrieben werden):
for kunde in dict2:			
    for anhang in dict2[kunde]:	
      
        attachment  = "D:\Programme\Dropbox\Dropbox\Python\E-Mail" + '\\' + anhang
        mail.Attachments.Add(attachment)
    mail.To = CLdict[kunde]
    mail.Display()

            
Python erstellt aber nur eine einzige Mail und packt alle Anhänge in diese Mail. Es erscheint keine Fehlermeldung.
Wo liegt der Fehler?

Danke für die Hilfe!
tretol
User
Beiträge: 4
Registriert: Mittwoch 26. September 2018, 20:55

hat sich erledigt: "outlook.CreateItem(0)" war an der falschen Stelle im Code.
Benutzeravatar
__blackjack__
User
Beiträge: 13061
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@tretol: Dein Code enthält einen Einrückungsfehler.

Die Namen sind teilweise sehr schlecht. Ein Name soll dem Leser vermitteln was der Wert bedeutet und nicht zu rätselraten führen. Also keine kryptischen Abkürzungen oder absolut generische Namen mit angehängten Nummern. Oder einbuchstabige Namen wie `k` für etwas anderes als ganze Zahlen.

Dateien die man öffnet sollte man auch wieder schliessen. Am besten in dem man `open()` zusammen mit der ``with``-Anweisung verwendet. `fin` ist kein guter Name. `zeilen` wäre einer.

`zeilenzähler` und `zeile2` werden nirgends verwendet. Die innere ``for``-Schleife mit `zeile2` ist sowieso komplett unsinnig.

Jede Zeile dreimal mit `split()` zu zerlegen um dann jedes mal nur ein Element zu verwenden ist verschwenderisch. Zudem würde ich die Anzahl auf eine Trennstelle beschränken, denn ``=`` darf durchaus in E-Mail-Adressen für den To-Header vorkommen.

`outlook` wird erst nach der Zuordnung von Dateinamen zu Kunden benötigt. Man sollte Definition und Verwendung nicht zu weit auseinander haben, sonst wird es schwieriger Code auf Funktionen aufzuteilen wenn er zu lang wird, oder man hat nach Änderungen Definitionen im Code die später gar nicht mehr verwendet werden, weil man sie beim löschen von altem Code übersehen hat.

Dein momentanes Vorgehen kann problematisch werden wenn ein Kundename Bestandteil eines anderen Kundennamen ist. Man müsste die mindestens nach der Länge sortieren und längere vor kürzeren prüfen und beim ersten Treffer die innere Schleife abbrechen. Vorausgesetzt es darf immer nur einen Kunden pro Dateiname geben.

Pfadteile setzt man nicht mit ``+`` sondern mit `os.path.join()` zusammen. Zudem solltest Du den Pfad auch bei `listdir()` verwenden, denn sonst kann es sein das zum Zuordnen der Dateinamen ein anderes Verzeichnis verwendet wird als das aus dem die Anlagen für die E-Mails generiert werden.

Ist es gewollt, das auch Mails für Kunden erzeugt werden, für die es keine Dateien für die Anlage gibt?

Da in der letzten äusseren ``for``-Schleife sowohl die Schlüssel als auch die Werte benötigt werden, kann man auch gleich über diese Paare iterieren.

Ich komme dann ungefähr hier raus als Zwischenergebnis:

Code: Alles auswählen

#!/usr/bin/env python3
import os
import win32com.client as win32

ATTACHMENT_PATH = r'D:\Programme\Dropbox\Dropbox\Python\E-Mail'


def main():
    kundenname_zu_email_adressen = dict()
    kundenname_zu_dateinamen = dict()
    with open('Kontakte.txt') as zeilen:
        for zeile in zeilen:
            kundenname, email_adressen = zeile.split('=', 1)
            kundenname_zu_email_adressen[kundenname] = email_adressen
            kundenname_zu_dateinamen[kundenname] = list()
                                  
    for filename in os.listdir(ATTACHMENT_PATH):
        for kundenname in kundenname_zu_email_adressen:
            # 
            # TODO Problematisch wenn Kundennamen Teil von anderen
            #   Kundennamen sein können.  Beispielsweise ”Müller” und
            #   ”Müller & Co”.
            # 
            if kundenname in filename:
                kundenname_zu_dateinamen[kundenname].append(filename)
                
    outlook = win32.Dispatch('outlook.application')
    for kunde, filenames in kundenname_zu_dateinamen.items():         
        # 
        # TODO Sollen für Kunden ohne Dateinamen tatsächlich auch E-Mails
        # erzeugt werden?
        # 
        mail = outlook.CreateItem(0)
        mail.Subject = 'testüberschrift'
        for filename in filenames:
            mail.Attachments.Add(os.path.join(ATTACHMENT_PATH, filename))
        mail.To = kundenname_zu_email_adressen[kunde]
        mail.Display()


if __name__ == '__main__':
    main()
Was daran noch unschön ist, sind diese zwei ”parallelen” Wörterbücher. Da würde ich vielleicht mit einem `collections.namedtupel` die Werte jeweils zu einem Objekt zusammenfassen.

Code: Alles auswählen

#!/usr/bin/env python3
import os
from collections import namedtuple
import win32com.client as win32

ATTACHMENT_PATH = r'D:\Programme\Dropbox\Dropbox\Python\E-Mail'

Kunde = namedtuple('Kunde', 'email_adressen dateinamen')


def main():
    kundenname_zu_kunde = dict()
    with open('Kontakte.txt') as zeilen:
        for zeile in zeilen:
            kundenname, email_adressen = zeile.split('=', 1)
            kundenname_zu_kunde[kundenname] = Kunde(email_adressen, list())
                                  
    for filename in os.listdir(ATTACHMENT_PATH):
        for kundenname, kunde in kundenname_zu_kunde.items():
            # 
            # TODO Problematisch wenn Kundennamen Teil von anderen
            #   Kundennamen sein können.  Beispielsweise ”Müller” und
            #   ”Müller & Co”.
            # 
            if kundenname in filename:
                kunde.dateinamen.append(filename)
                
    outlook = win32.Dispatch('outlook.application')
    for kunde in kundenname_zu_kunde.values():
        # 
        # TODO Sollen für Kunden ohne Dateinamen tatsächlich auch E-Mails
        # erzeugt werden?
        #        
        mail = outlook.CreateItem(0)
        mail.Subject = 'testüberschrift'
        for filename in kunde.dateinamen:
            mail.Attachments.Add(os.path.join(ATTACHMENT_PATH, filename))
        mail.To = kunde.email_adressen
        mail.Display()


if __name__ == '__main__':
    main()
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
tretol
User
Beiträge: 4
Registriert: Mittwoch 26. September 2018, 20:55

Hallo,
danke für die Verbesserungsvorschläge! Ich werde das demnächst nochmal aufarbeiten und mich bei Bedarf wieder melden.
tretol
User
Beiträge: 4
Registriert: Mittwoch 26. September 2018, 20:55

Hallo,
jetzt ist es also wieder soweit und ich brauche Hilfe. Ich habe deine Verbesserungsvorschläge beherzigt, deinen Code (den ersten, ohne Tupel) angepasst und bin nun zufrieden. So sieht es jetzt aus:

Code: Alles auswählen

# -*- coding: utf-8 -*-
"""
Created on Sun Oct 14 07:57:02 2018

@author: Stan Dard
"""

import os
import win32com.client as win32

ATTACHMENT_PATH = r'D:\Programme\Dropbox\Dropbox\Python\E-Mail'


def main():
    kundenname_zu_email_adressen = dict()
    kundenname_zu_dateinamen = dict()
    kundenname_zu_anrede = dict()
    with open('Kontakte.txt') as zeilen:
        for zeile in zeilen:
            kundenname, email_adressen, anrede = zeile.split('=', 2)
            kundenname_zu_email_adressen[kundenname] = email_adressen
            kundenname_zu_dateinamen[kundenname] = list()
            kundenname_zu_anrede[kundenname] = anrede
                                  
    for filename in os.listdir(ATTACHMENT_PATH):
        for kundenname in kundenname_zu_email_adressen:
            # 
            # TODO Problematisch wenn Kundennamen Teil von anderen
            #   Kundennamen sein können.  Beispielsweise ”Müller” und
            #   ”Müller & Co”.
            # 
            if kundenname in filename:
                kundenname_zu_dateinamen[kundenname].append(filename)
                
    outlook = win32.Dispatch('outlook.application')
    for kunde, filenames in kundenname_zu_dateinamen.items():         
        # 
        # TODO Sollen für Kunden ohne Dateinamen tatsächlich auch E-Mails
        # erzeugt werden?
        # 
        mail = outlook.CreateItem(0)
        mail.Subject = 'testuberschrift'
        mail.GetInspector 
        for filename in filenames:
            mail.Attachments.Add(os.path.join(ATTACHMENT_PATH, filename))
        mail.To = kundenname_zu_email_adressen[kunde]
        index = mail.HTMLbody.find('>', mail.HTMLbody.find('<body')) 
        mail.HTMLbody = mail.HTMLbody[:index + 1] + '<font size="2.5"><font face="Arial,Helvetica">Sehr geehrter ' + kundenname_zu_anrede[kunde] + '<br><br>anbei .... '+ mail.HTMLbody[index + 1:] + "</font></font>" 
        mail.save()


if __name__ == '__main__':
    main()
Wenn ich das Programm über Python ausführe funktioniert alles wunderbar.
Weil ich in der Firma aber kein Python habe, habe ich als nächsten Schritt mit pyinstaller eine exe-Datei generiert (pyinstaller -F -excel1.py).

Wenn ich diese allerdings ausführe, erscheint folgende Fehlermeldung:

Code: Alles auswählen

D:\Programme\Dropbox\Dropbox\Python\E-Mail>excel1.exe
Traceback (most recent call last):
  File "excel1.py", line 102, in <module>
    main()
  File "excel1.py", line 72, in main
    for zeile in zeilen:
  File "D:\Programme\WPy-3702\python-3.7.0.amd64\lib\codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 379: invalid start byte
[2112] Failed to execute script excel1
Der Fehler tritt auf Grund der Umlaute auf. Der Nachrichtentext der E-Mail wird aus einer Textdatei importiert , die Umlaute enthält.
Diese Textdatei habe ich mit Notepad erstellt. Wenn ich die Datei in "UTF-8" abspeichere, wird zwar kein Fehler ausgegeben, aber die Umlaute werden falsch angezeigt:
z.B Schäfer statt Schäfer und Müller statt Müller.

Hat jemand eine Idee wie man das Problem lösen kann?

Vielen Dank!

(Ich benutze Python 3.7)

PS:
Pyinstaller gibt Folgendes aus:

Code: Alles auswählen

D:\Programme\Dropbox\Dropbox\Python\E-Mail>pyinstaller -F excel1.py
64 INFO: PyInstaller: 3.4
65 INFO: Python: 3.7.0
65 INFO: Platform: Windows-10-10.0.17134-SP0
66 INFO: wrote D:\Programme\Dropbox\Dropbox\Python\E-Mail\excel1.spec
73 INFO: UPX is not available.
75 INFO: Extending PYTHONPATH with paths
['D:\\Programme\\Dropbox\\Dropbox\\Python\\E-Mail',
 'D:\\Programme\\Dropbox\\Dropbox\\Python\\E-Mail']
75 INFO: checking Analysis
75 INFO: Building Analysis because Analysis-00.toc is non existent
75 INFO: Initializing module dependency graph...
80 INFO: Initializing module graph hooks...
81 INFO: Analyzing base_library.zip ...
3642 INFO: running Analysis Analysis-00.toc
3657 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
  required by D:\Programme\WPy-3702\python-3.7.0.amd64\python.exe
3885 WARNING: lib not found: api-ms-win-crt-math-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python.exe
4098 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python.exe
4355 WARNING: lib not found: api-ms-win-crt-locale-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python.exe
4581 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python.exe
4793 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python.exe
5101 WARNING: lib not found: api-ms-win-crt-time-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
5317 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
5533 WARNING: lib not found: api-ms-win-crt-environment-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
5786 WARNING: lib not found: api-ms-win-crt-math-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
6020 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
6244 WARNING: lib not found: api-ms-win-crt-locale-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
6456 WARNING: lib not found: api-ms-win-crt-process-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
6669 WARNING: lib not found: api-ms-win-crt-convert-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
6886 WARNING: lib not found: api-ms-win-crt-conio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
7100 WARNING: lib not found: api-ms-win-crt-filesystem-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
7312 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
7524 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
7742 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\VCRUNTIME140.dll
7957 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\VCRUNTIME140.dll
8184 WARNING: lib not found: api-ms-win-crt-convert-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\VCRUNTIME140.dll
8404 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\VCRUNTIME140.dll
8621 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\VCRUNTIME140.dll
8623 INFO: Caching module hooks...
8627 INFO: Analyzing D:\Programme\Dropbox\Dropbox\Python\E-Mail\excel1.py
8630 INFO: Processing pre-safe import module hook   win32com
8736 INFO: Processing pre-find module path hook   distutils
9582 INFO: Loading module hooks...
9582 INFO: Loading module hook "hook-distutils.py"...
9584 INFO: Loading module hook "hook-encodings.py"...
9670 INFO: Loading module hook "hook-pydoc.py"...
9671 INFO: Loading module hook "hook-pythoncom.py"...
10450 INFO: Loading module hook "hook-pywintypes.py"...
11186 INFO: Loading module hook "hook-win32com.py"...
11308 INFO: Loading module hook "hook-xml.py"...
11594 INFO: Looking for ctypes DLLs
11594 INFO: Analyzing run-time hooks ...
11599 INFO: Including run-time hook 'pyi_rth_win32comgenpy.py'
11606 INFO: Looking for dynamic libraries
11851 WARNING: lib not found: api-ms-win-crt-time-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\pywintypes37.dll
12080 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\pywintypes37.dll
12295 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\pywintypes37.dll
12535 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\pywintypes37.dll
12751 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\pywintypes37.dll
12978 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\pythoncom37.dll
13186 WARNING: lib not found: api-ms-win-crt-utility-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\pythoncom37.dll
13399 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\pythoncom37.dll
13624 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\pythoncom37.dll
13837 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\pythoncom37.dll
14058 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\win32\win32trace.pyd
14270 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\win32\win32trace.pyd
14485 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\win32\_win32sysloader.pyd
14718 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\win32ui.pyd
14929 WARNING: lib not found: api-ms-win-crt-utility-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\win32ui.pyd
15147 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\win32ui.pyd
15433 WARNING: lib not found: api-ms-win-crt-convert-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\win32ui.pyd
15657 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\win32ui.pyd
15873 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\win32ui.pyd
16093 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\win32\win32api.pyd
16320 WARNING: lib not found: api-ms-win-crt-convert-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\win32\win32api.pyd
16534 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\win32\win32api.pyd
16752 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\win32\win32api.pyd
16980 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_ssl.pyd
17198 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_ssl.pyd
17431 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_ssl.pyd
17667 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\unicodedata.pyd
17883 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\unicodedata.pyd
18104 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\unicodedata.pyd
18325 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\pyexpat.pyd
18562 WARNING: lib not found: api-ms-win-crt-environment-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\pyexpat.pyd
18781 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\pyexpat.pyd
19003 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\pyexpat.pyd
19223 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\pyexpat.pyd
19443 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_hashlib.pyd
19669 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_bz2.pyd
19890 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_bz2.pyd
20100 WARNING: lib not found: api-ms-win-crt-math-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_bz2.pyd
20313 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_bz2.pyd
20533 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_bz2.pyd
20761 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_lzma.pyd
20978 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_lzma.pyd
21199 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_socket.pyd
21417 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\_socket.pyd
21643 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\select.pyd
21972 WARNING: lib not found: api-ms-win-crt-math-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\mfc140u.dll
22190 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\mfc140u.dll
22402 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\mfc140u.dll
22614 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\mfc140u.dll
22829 WARNING: lib not found: api-ms-win-crt-time-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\mfc140u.dll
23042 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\mfc140u.dll
23254 WARNING: lib not found: api-ms-win-crt-multibyte-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\mfc140u.dll
23467 WARNING: lib not found: api-ms-win-crt-convert-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\mfc140u.dll
23679 WARNING: lib not found: api-ms-win-crt-utility-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\mfc140u.dll
23912 WARNING: lib not found: api-ms-win-crt-filesystem-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\Pythonwin\mfc140u.dll
24160 WARNING: lib not found: api-ms-win-crt-time-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libssl-1_1-x64.dll
24394 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libssl-1_1-x64.dll
24615 WARNING: lib not found: api-ms-win-crt-utility-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libssl-1_1-x64.dll
24831 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libssl-1_1-x64.dll
25665 WARNING: lib not found: api-ms-win-crt-time-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libcrypto-1_1-x64.dll
25876 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libcrypto-1_1-x64.dll
26085 WARNING: lib not found: api-ms-win-crt-utility-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libcrypto-1_1-x64.dll
26310 WARNING: lib not found: api-ms-win-crt-environment-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libcrypto-1_1-x64.dll
26525 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libcrypto-1_1-x64.dll
26742 WARNING: lib not found: api-ms-win-crt-convert-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libcrypto-1_1-x64.dll
26953 WARNING: lib not found: api-ms-win-crt-filesystem-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libcrypto-1_1-x64.dll
27166 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libcrypto-1_1-x64.dll
27379 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of D:\Programme\WPy-3702\python-3.7.0.amd64\DLLs\libcrypto-1_1-x64.dll
27385 INFO: Looking for eggs
27385 INFO: Using Python library D:\Programme\WPy-3702\python-3.7.0.amd64\python37.dll
27385 INFO: Found binding redirects:
[]
27389 INFO: Warnings written to D:\Programme\Dropbox\Dropbox\Python\E-Mail\build\excel1\warn-excel1.txt
27426 INFO: Graph cross-reference written to D:\Programme\Dropbox\Dropbox\Python\E-Mail\build\excel1\xref-excel1.html
27435 INFO: checking PYZ
27435 INFO: Building PYZ because PYZ-00.toc is non existent
27435 INFO: Building PYZ (ZlibArchive) D:\Programme\Dropbox\Dropbox\Python\E-Mail\build\excel1\PYZ-00.pyz
27903 INFO: Building PYZ (ZlibArchive) D:\Programme\Dropbox\Dropbox\Python\E-Mail\build\excel1\PYZ-00.pyz completed successfully.
27909 INFO: checking PKG
27909 INFO: Building PKG because PKG-00.toc is non existent
27909 INFO: Building PKG (CArchive) PKG-00.pkg
30235 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
30237 INFO: Bootloader D:\Programme\WPy-3702\python-3.7.0.amd64\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe
30237 INFO: checking EXE
30237 INFO: Building EXE because EXE-00.toc is non existent
30238 INFO: Building EXE from EXE-00.toc
30238 INFO: Appending archive to EXE D:\Programme\Dropbox\Dropbox\Python\E-Mail\dist\excel1.exe
30251 INFO: Building EXE from EXE-00.toc completed successfully.
Benutzeravatar
__blackjack__
User
Beiträge: 13061
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wenn die Datei nicht als UTF-8 kodiert ist, muss man die tatsächliche Kodierung beim öffnen der Datei angeben. Oder die Datei UTF-8 kodiert speichern und beim öffnen auch UTF-8 als Kodierung angeben. Das sollte man immer explizit machen, sonst ist das vom Betriebssystem und den Einstellungen abhängig und funktioniert auf einem Rechner und auf einem anderen nicht.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten