Zum Inhalt

Bots & Scripting-Engines

7. Benachrichtigungs-Engines und Scripting-Bots

In diesem Abschnitt erfahren Sie, wie Sie Ihren Code mit externen Kommunikationsmitteln verbinden, automatisierte E-Mails senden, SMS-Textwarnungen übertragen, mit sozialen Medien interagieren und Sicherheitsdaten sicher verarbeiten.

Tools und Bibliotheken

  • hashlib: Eine integrierte Python-Bibliothek, die verwendet wird, um vertrauliche Textzeichenfolgen (wie Passwörter) in sichere, unlesbare kryptografische Hashes zu verschlüsseln.
  • smtplib & email.message: Integrierte Python-Module, die zusammen verwendet werden, um umfangreiche E-Mails zu formatieren und sich sicher bei Remote-Mail-Servern anzumelden, um sie zu senden.
  • twilio: Ein leistungsstarkes Unternehmens-SDK eines Drittanbieters, das zum Versenden automatisierter Textnachrichten, RCS und WhatsApp-Benachrichtigungen direkt an physische Mobiltelefone verwendet wird.
  • tweepy: Ein Open-Source-Paket, das die direkte Verbindung Ihrer Skripte mit der Twitter/X-Entwickler-API vereinfacht.
  • instagrapi: Ein funktionsreicher, leistungsstarker Automatisierungs-Wrapper, der zur direkten Interaktion mit der Instagram-API verwendet wird, um Beiträge zu veröffentlichen, Geschichten hochzuladen und Direktnachrichten zu verwalten.

Kernmethoden und vollständiges Codebeispiel

  • hashlib.sha1('text'.encode()).hexdigest(): Konvertiert einfachen Text in einen permanenten verschlüsselten Code mit 40 Zeichen. Bei der Passwortsicherheit verwenden Entwickler dies, um nur die ersten fünf Zeichen mit Tools zur Überprüfung von Verstößen (k-Anonymität) zu teilen, um zu überprüfen, ob ein Passwort durchgesickert ist, ohne das Passwort selbst preiszugeben.
  • EmailMessage(): Richtet ein digitales Umschlagobjekt ein, an das Sie Metadaten (Betreff, An, Von) und Hauptinhaltstext oder HTML-Markup anhängen können.
  • smtplib.SMTP(host, port) & server.starttls(): Richtet mithilfe der TLS-Verschlüsselung (Transport Layer Security) eine sichere Pipeline zu einem Mailserver ein, sodass Authentifizierungsdetails vertraulich bleiben.
  • cl.login(user, pass) & cl.photo_upload(path, caption): Authentifiziert eine aktive Instagram-Benutzersitzung und überträgt eine lokale Bilddatei direkt an Ihren Live-Feed mit einer begleitenden Beschriftung.
import hashlib
import smtplib
from email.message import EmailMessage
from pathlib import Path
from instagrapi import Client  # Imported for Instagram bot actions

# --- 1. Cryptographic Security (hashlib) ---
# Turns a string into a safe, irreversible 40-character hexadecimal representation
raw_password = "my_secure_password123"
hashed_string = hashlib.sha1(raw_password.encode()).hexdigest().upper()
print(f"SHA-1 Secure Signature: {hashed_string}")


# --- 2. Constructing the Email Structure (email.message & smtplib) ---
# Prepares the data payload and routes it through an external mail server
msg = EmailMessage()
msg['Subject'] = 'System Security Verification Alert'
msg['From'] = 'system-server@domain.com'
msg['To'] = 'admin@domain.com'
msg.set_content('Automated notification baseline text: Verification checks completed.')

with smtplib.SMTP('smtp.gmail.com', 587) as server:
    server.starttls()  # Upgrade the connection to use secure TLS encryption wrappers
    server.login("user@gmail.com", "my-app-password")
    server.send_message(msg)


# --- 3. Social Bot Automation (instagrapi Quick-Look) ---
# Logs into Instagram programmatically, adds human-like delays, and publishes an image
cl = Client()
cl.delay_range = [10, 20]  # Best practice: Add a random delay range to prevent spam blocks

# Run the automation safely by validating the asset exists first
cl.login("my_instagram_username", "my_secret_password")
image_path = Path("alert_graphic.jpg")
if image_path.exists():
    uploaded_post = cl.photo_upload(image_path, "System Update: Status Green! 🚀 #Python #Automation")
    print(f"Post successful! Code: {uploaded_post.code}")


# --- 4. SMS Alternative Option (twilio Quick-Look) ---
##How you would trigger a real-world text notification using the third-party client:
from twilio.rest import Client as TwilioClient
twilio_client = TwilioClient("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN")
twilio_client.messages.create(
    body="System Alert: Verification checks completed.",
    from_="+15551234567",
    to="+15559876543"
)