Reading time: 1 minutes

Elektroninių laiškų siuntimas (Google Python funkcija) [Siuntimas per Gmail]






Elektroniniai laiškai su Python? Taip, o kodėl gi ne? O jei tai šiek tiek automatizuotumėte ir sukurtumėte Google Python funkciją?

Funkcija

Super slaptas aplikacijos slaptažodis

Jį gausite aplankę šį puslapį: https://support.google.com/accounts/answer/185833?hl=en

requirements.txt

requests==2.24.0
unidecode==1.2.0

Kodas

import smtplib, ssl, json
import requests
from unidecode import unidecode


class Mail:

    def __init__(self):
        self.port = 465
        self.smtp_server_domain_name = "smtp.gmail.com"
        self.sender_mail = "youremail"
        self.password = "yourverysecretpassword"

    def send(self, email, subject, content):
        ssl_context = ssl.create_default_context()
        service = smtplib.SMTP_SSL(self.smtp_server_domain_name, self.port, context=ssl_context)
        service.login(self.sender_mail, self.password)
        result = service.sendmail(self.sender_mail, email, f"Subject: {subject}\n{content}")
        service.quit()


def ini_req(request):
    headers = request.headers;
    key="123";
    if(headers.get("key") is not None and key == headers.get("key")):
      fetch_url = "anendpointtofetchthelatestpost"
      r = requests.get(fetch_url)
      json_data = json.loads(r.text)
      first_post = json_data["items"][0]
      title = first_post["title"]
      link = first_post["url"]
      new_content = "Naujas įrašas: {}".format(link)
      mail = Mail()
      email = "ourrecipient"
      mail.send(email, unidecode(str(title)), unidecode(str(new_content)))
      response_headers = {
        "Access-Control-Allow-Origin":"*",
        'Content-Type':'application/json'
      }
      return (json.dumps("ok"),200,response_headers)
    else:
      return (json.dumps("Error: Wrong authorization credentials"),200,response_headers)

Testas

Paprasta užklausa ir voila. Elektroninis laiškas išsiųstas.

import requests

h = {
    "key":"123"
}
r= requests.get("https://googlefunction",headers=h)
print(r.text)

via GIPHY

Visa pateikiama informacija - asmeninė autoriaus nuomonė. Kilus naiškumams rekomenduojama susisiekti elektroniniu paštu: admin@artefaktas.eu

Comments

comments powered by Disqus