Senden Sie eine E-Mail mit SES in Python und eine Kurznachricht mit SMS auf SNS

Einführung

Haben Sie Funktionen in Ihrer Anwendung, die E-Mails oder Kurznachrichten senden? Ich habe neulich auch eine solche Funktion implementiert. Natürlich mit AWS SES und SNS. Ich wollte es in Node.js schreiben, aber ich habe es aus verschiedenen Gründen in Python geschrieben. SES, SNS, SMS sind kompliziert! Ich habe es dabei implementiert, aber es gab einige Einschränkungen und so weiter, also habe ich es im Artikel für die Zukunft belassen ...

Was ist SES?

SES (Simple Email Service) ist eine E-Mail-Plattform, mit der Benutzer E-Mails mithilfe ihrer E-Mail-Adressen und Domains kostengünstig und einfach senden und empfangen können. Ein Service, mit dem Sie vorerst E-Mails mit AWS-Services senden und empfangen können. Es tut mir leid, dass ich angemessen bin ...

Was ist SNS?

SNS (Simple Notification Service) ist ein Webdienst, der die Zustellung oder das Senden von Nachrichten an abonnierende Endpunkte koordiniert und verwaltet. Sie können Lambda, SQS, SMS usw. als Abonnenten verwenden. Dieses Mal werde ich eine kurze Nachricht per SMS senden.

Implementierungsmethode

Da es mehrere Anrufer wie die Anwendungsseite und andere Dienste von AWS gab, habe ich beschlossen, es in Lambda zu schreiben. Es ist im Grunde so, als würde man Lambda treten und SES oder SMS senden.

SES Wenn Sie die Ziel-E-Mail-Adresse in einem Array übergeben, können Sie sie an mehrere Adressen senden. Grundsätzlich können Sie bei Verwendung von SES nur die von SES im Voraus registrierten und zugelassenen Adressen senden und empfangen. Wenn Sie dies jedoch tun, müssen Sie SES jedes Mal registrieren und autorisieren, wenn sich die Anzahl der Adressen erhöht. Wenden Sie sich daher an den Support und lassen Sie sie aus der Sandbox-Umgebung entfernen. Dann müssen Sie sich nicht als E-Mail-Empfänger registrieren. (Beachten Sie, dass die Absenderadresse registriert sein muss)

import boto3

def lambda_handler(event, context):
  try:
    ses = boto3.client("ses", region_name = "us-west-2")
    ses.send_email(
      Source = "from_mailaddress",
      Destination = {
        "ToAddresses": "to_mailaddress"
      },
      Message = {
        "Subject": {
          "Data": "subject_title",
          "Charset": "UTF-8"
        },
        "Body": {
          "Text": {
            "Data": "body_message",
            "Charset": "UTF-8"
          }
        }
      }
    )
  except Exception as e:
    print e

SNS(SMS) Es scheint, dass die Zieltelefonnummer nur an eine internationale Telefonnummer gesendet werden kann (manchmal mit +81). Da es sich um eine Kurznachricht handelt, wird ein Fehler ausgegeben, wenn der Inhalt der Nachricht nicht moderat ist. Außerdem beträgt das Standardlimit für Nutzungsgebühren 1 $ / Monat, und Sie können nur Dutzende von Nachrichten so wie sie sind senden. Darüber hinaus können Sie das Limit nicht erhöhen (Sie erhalten eine Fehlermeldung, dass Sie es nicht erhöhen dürfen). Wenden Sie sich daher an den Support sowie an SES, damit Sie das Limit erhöhen können.

import boto3

def lambda_handler(event, context):
  try:
    sns = boto3.client("sns")
    phoneNumber = "+818012345678"
    message = "send message"
    sns.publish(
      PhoneNumber = phoneNumber
      Message = message
    )
  except Exception as e:
    print e

schließlich

Ich war ein wenig mit den Einschränkungen von SES und SNS (SMS) beschäftigt, also schrieb ich diesen Artikel. Wenn Sie AWS-SDK usw. verwenden, können Sie problemlos eine Nachricht von der Anwendungsseite senden. Es ist bequem. Wenn Sie dem Lambda-Ereignis die Zieladresse, Telefonnummer, den Nachrichteninhalt usw. geben und darauf verweisen, können Sie es in einem Lambda wiederverwenden. Es ist bequem (zweites Mal).

wir sehen uns!

Recommended Posts

Senden Sie eine E-Mail mit SES in Python und eine Kurznachricht mit SMS auf SNS
Senden Sie eine E-Mail mit Amazon SES + Python
Mail per Python senden
Senden Sie eine E-Mail mit Excel in Python
E-Mail Hipchat mit Postfix, Fluentd und Python auf Azure
Senden Sie japanische Post mit Python3
Mail senden mit Python (Outlook)
[Automatisierung] Senden Sie Outlook-E-Mails mit Python
[Python] Mail mit Outlook senden
Senden Sie E-Mails über Google Mail mit Python 3.4.3.
HTML-Mail mit Bild zum Senden mit Python
Senden Sie mit Python (Python3) E-Mails an mehrere Empfänger.
Ein Memo mit Python2.7 und Python3 in CentOS
Umgang mit "Jahren und Monaten" in Python
Erstellen und bearbeiten Sie Tabellenkalkulationen in einem beliebigen Ordner auf Google Drive mit Python
Rabbit MQ Nachrichtenbenachrichtigungs-App mit Growl in Python ~ mit Raspeye und Julius ~
Senden und Empfangen von Binärdaten über serielle Kommunikation mit Python3 (auf Mac)
Senden Sie eine Nachricht mit Python an LINE (LINE Notify)
Senden Sie eine E-Mail mit Python an Spushis Adresse
Installieren Sie OpenCV 4.0 und Python 3.7 unter Windows 10 mit Anaconda
Senden Sie eine Nachricht an Skype und Chatwork in Python
[Python] Mail senden
Versuchen Sie, mit Mongo in Python auf dem Mac zu arbeiten
Extrahieren Sie E-Mail-Anhänge, die Thunderbird mit Python erhalten hat
Senden Sie HTTP mit dem Standardauthentifizierungsheader in Python
So senden Sie automatisch E-Mails mit Anhängen mithilfe der Google Mail-API in Python
Wenn Sie Probleme beim Senden von E-Mails mit Python smtplib haben, rufen Sie die Befehlszeile auf
Installieren Sie Selenium auf Ihrem Mac und probieren Sie es mit Python aus
Automatisches Folgen auf Twitter mit Python und Selen! (RPA)
Erhalten Sie Kommentare auf Youtube Live mit [Python] und [Pytchat]!
Berechnen Sie Pose- und Transformationsunterschiede in Python mit ROS
Ubuntu 20.04 auf Himbeer-Pi 4 mit OpenCV und mit Python verwenden
Starten Sie die numerische Berechnung mit Python (mit Homebrew und Pip).
Automatisieren Sie Chrome mit Python und Selen auf Ihrem Chromebook
Ausnahmemeldung in Python
Mail mit Django senden
Überprüfen Sie die E-Mail mit Python
Senden Sie Google Mail in Python
Setzen Sie Ubuntu in Raspi ein, setzen Sie Docker darauf und steuern Sie GPIO mit Python aus dem Container
Veriloggen und Cocotb werden nur zum Entwerfen und Testen von Verilog in Python verwendet.
So installieren Sie NPI + Senden Sie eine Nachricht an Python
[Python] Senden Sie eine E-Mail aus Google Mail mit einer zweistufigen Authentifizierungseinstellung
Ich habe versucht, mit Python eine E-Mail von Amazon SES zu senden
IP-Spoof mit tor unter macOS und mit Python prüfen
Testen Sie Python mit Miniconda unter OS X und Linux mit travis-ci
Tipps zum Codieren kurz und einfach in Python zu lesen
Datei im Dialog mit Python auswählen → Dateinamen im Meldungsfeld anzeigen
Spielen Sie mit Mastodons Archiv in Python 2 Count Antworten und Favoriten
Hinweise zum Bereitstellen von pyenv mit Homebrew und zum Verwalten von Python-Versionen
Installieren Sie CaboCha in der Ubuntu-Umgebung und rufen Sie es mit Python auf.
Nachricht vom ersten Offset mit Kafka Consumer in Python abrufen
So melden Sie sich mit Python bei AtCoder an und senden automatisch
Hinweise zum Lesen und Schreiben von float32 TIFF-Bildern mit Python
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Schaben mit Selen in Python
Python und Hardware-Verwenden von RS232C mit Python-
Python auf Ruby und wütend Ruby auf Python
Betreiben Sie LibreOffice mit Python