Die Methode dieses Mal besteht darin, den Text in eine Textdatei zu schreiben und Die Methode besteht darin, die Textdatei abzurufen und eine URL zu erstellen. Vor kurzem hat der Tagesbericht dies bereits getan. In diesem Artikel werde ich gemäß dem vorherigen Ablauf unter der Annahme eines täglichen Berichts schreiben.
Die URL und die Parameter wurden im vorherigen Artikel geschrieben, lauten jedoch wie folgt.
https://mail.google.com/mail/?view=cm Verketten Sie die Parameter mit dieser URL.
Die Parameter sind wie folgt (fast gleich)
|Parameter|Bedeutung|
| :----: | :----: |
| to= | To |
| cc= | Cc |
| bcc= | Bcc |
| su= |Gegenstand|
| body= |Text|
#### **`URL-Erstellung`**
```python
from datetime import datetime
import urllib.parse
def getUrl(body: str) -> str:
url = "https://mail.google.com/mail/?view=cm"
url += "&[email protected]"
url += "&[email protected]"
url += "&[email protected]"
today = datetime.now()
url += f"&su=Tagesbericht{today.month}/{today.strftime('%d')}Tagesbericht Taro"
url += f"&body={strenc(body)}"
return url
def strenc(txt: str) -> str :
lst = list("#'|^<>{};?@&$" + '"')
for v in lst:
txt = txt.replace(v, urllib.parse.quote(v))
txt = urllib.parse.quote(txt)
return txt
Hier und da ist fast das gleiche wie beim letzten Mal.
Dies ist das gleiche wie beim letzten Mal, und wir werden den Befehl ausführen. Da es sich um Python handelt, ist es im Gegensatz zu VBA einfach zu schreiben.
Öffnen Sie die URL mit dem Startbefehl von Python
import subprocess
def openUrl(url: str):
subprocess.call(f'cmd /c start "" "{url}"', shell=True)
Nachdem wir die Funktion haben, erhalten wir den Inhalt der Textdatei und verfassen die E-Mail. Angenommen, Sie haben eine Datei auf Ihrem Desktop mit dem Namen "Mail.txt".
import os
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop/')
fileName = "Email.txt"
def main():
with open(f"{desktop}{fileName}", mode="r", encoding="UTF-8") as f:
url = getUrl(f.read())
openUrl(url)
Wenn ich es ausführe, wird der Browser geöffnet und Google Mail wird geöffnet. Es ist mühsam, Python einzeln an der Eingabeaufforderung auszuführen, daher schreibe ich einen Stapel. Python-Dateien müssen sich nicht auf Ihrem Desktop befinden. Fügen Sie beispielsweise `` `/ work / python / DailyReport / DailyReport.py``` in den Benutzerordner ein.
@echo off
cd ../work/python/DailyReport
python DailyReport.py
Speichern Sie diesen Stapel auf Ihrem Desktop.
Wenn Sie den Text in `mail.txt``` schreiben und den Stapel ausführen, Ich denke, dass es im Browser geöffnet wurde und der Mail-Kompositionsbildschirm angezeigt wurde. (Dieses Mal werde ich das Ausführungsergebnis weglassen. Da der Inhalt der gleiche ist ...) In Bezug auf den Ausblick
getUrl" im vorherigen [Bonus](https://qiita.com/neruru_y/items/a5d0a3f7ef30f5a36962#%E3%81%8A%E3%81%BE%E3%81%91) Ich denke, Sie können es tun, indem Sie () ``
imitieren.
DailyReport.py
from datetime import datetime
import os
import urllib.parse
import subprocess
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop/')
fileName = "Email.txt"
def main():
with open(f"{desktop}{fileName}", mode="r", encoding="UTF-8") as f:
url = getUrl(f.read())
openUrl(url)
def getUrl(body: str) -> str:
url = "https://mail.google.com/mail/?view=cm"
url += "&[email protected]"
url += "&[email protected]"
url += "&[email protected]"
today = datetime.now()
url += f"&su=Tagesbericht{today.month}/{today.strftime('%d')}Tagesbericht Taro"
url += f"&body={strenc(body)}"
return url
def strenc(txt: str) -> str :
lst = list("#'|^<>{};?@&$" + '"')
for v in lst:
txt = txt.replace(v, urllib.parse.quote(v))
txt = urllib.parse.quote(txt)
return txt
def openUrl(url: str):
subprocess.call(f'cmd /c start "" "{url}"', shell=True)
if __name__ == "__main__":
main()
mail.bat
@echo off
cd ../work/python/DailyReport
python DailyReport.py
Recommended Posts