Créez Gmail en Python sans utiliser l'API

Aperçu

Affichage de l'écran de composition de messagerie Gmail en Python

La méthode cette fois est d'écrire le texte dans un fichier texte et La méthode consiste à obtenir le fichier texte et à créer une URL. Récemment, le rapport quotidien a déjà fait de cette façon. Dans cet article, j'écrirai selon le flux précédent, en supposant un rapport quotidien.

Création d'URL

L'URL et les paramètres ont été écrits dans l'article précédent, mais ils sont les suivants.

https://mail.google.com/mail/?view=cm Concaténez les paramètres à cette URL.


 Les paramètres sont les suivants (presque les mêmes)

 |Paramètres|sens|
 | :----: | :----: |
 | to= | To |
 | cc= | Cc |
 | bcc= | Bcc |
 | su= |matière|
 | body= |Texte|


#### **`Création d'URL`**
```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=Rapport journalier{today.month}/{today.strftime('%d')}Rapport quotidien 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

Ici et là, c'est presque la même chose que la dernière fois.

Ouvrir le lien

C'est la même chose que la dernière fois, et nous exécuterons la commande. Puisqu'il s'agit de Python, il est facile d'écrire contrairement à VBA.

Ouvrir l'URL avec la commande de démarrage de Python


import subprocess

def openUrl(url: str):
    subprocess.call(f'cmd /c start "" "{url}"', shell=True)

Écrire un email

Maintenant que nous avons la fonction, nous allons récupérer le contenu du fichier texte et composer l'e-mail. Supposons que vous ayez un fichier sur votre bureau appelé `` 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)

Création de lots

Lorsque je l'exécute, le navigateur s'ouvre et Gmail s'ouvre. Il est difficile d'exécuter Python à l'invite de commande un par un, donc j'écrirai un lot. Les fichiers Python n'ont pas besoin d'être sur votre bureau, Par exemple, placez `` / work / python / DailyReport / DailyReport.py '' dans le dossier utilisateur.

@echo off
cd ../work/python/DailyReport
python DailyReport.py

Enregistrez ce lot sur votre bureau. Avec cela, si vous écrivez le corps dans mail.txt``` et exécutez le lot, Je pense qu'il a été ouvert dans le navigateur et que l'écran de composition du courrier a été affiché. (Je vais omettre le résultat de l'exécution cette fois. Puisque le contenu est le même ...) Concernant les perspectives, getUrl '' dans le précédent bonus Je pense que vous pouvez le faire en imitant () ''.

Code source complet

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=Rapport journalier{today.month}/{today.strftime('%d')}Rapport quotidien 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

Site de référence

Recommended Posts

Créez Gmail en Python sans utiliser l'API
[Python] Créer une API pour envoyer Gmail
Créer Spatia Lite en Python
API Evernote en Python
Brouillon de Gmail en Python
API C en Python 3
Envoyer Gmail en Python
Hit API de Mastodon en Python
Créer un dictionnaire en Python
API Blender Python dans Houdini (Python 3)
[API LINE Messaging] Créez un menu riche avec Python
Obtenir l'API arXiv en Python
J'ai essayé de créer une API list.csv avec Python à partir de swagger.yaml
Créer Awaitable avec l'API Python / C
Créer une portée locale en Python sans polluer l'espace de noms
Créer un conteneur DI avec Python
[Python3] Google translate google translation sans utiliser l'API
Créer un fichier binaire en Python
Accédez à l'API Web en Python
Créer une documentation de projet Python dans Sphinx
Détecter les frappes en Python (sans Entrée)
Implémentez rapidement l'API REST en Python
Accéder à l'API Twitter avec Python
Créer une chaîne aléatoire en Python
Créer et lire des paquets de messages en Python
[Python / Django] Créer une API Web qui répond au format JSON
Fonctionnement de la souris à l'aide de l'API Windows en Python
Créez vos propres commandes Linux en Python
Essayez d'utiliser l'API Wunderlist en Python
Créez automatiquement la documentation de l'API Python avec Sphinx
Essayez d'utiliser l'API Kraken avec Python
Créer ScriptableObject en Python lors de la construction d'ADX2
[LLDB] Créez votre propre commande avec Python
Créer une application GUI simple en Python
Recevoir des e-mails à l'aide de l'API Gmail en Java
Créer un module Python [CarSensor API support module csapi]
Tweet à l'aide de l'API Twitter en Python
Créer des pièces de concepteur Qt avec Python (PyQt)
Obtenez les données de l'API Google Fit en Python
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
Essayez rapidement l'API Face de Microsoft en Python
[GPS] Créer un fichier kml avec Python
[Python] Créez rapidement une API avec Flask
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python