Table des matières
Ce script envoie un e-mail par SMTP en se basant sur les données de la ligne actuelle. Il est conçu comme un script de bouton : vous cliquez sur un bouton dans une ligne et le script lit le destinataire, l’objet et le texte dans les colonnes correspondantes. Le statut d’envoi est écrit dans une colonne de sélection simple.
Prérequis
La table nécessite les colonnes suivantes :
- Recipient (E-mail) — adresse du destinataire
- Subject (Texte) — objet de l’e-mail
- Body (Texte long) — contenu de l’e-mail
- Status (Sélection simple) — défini par le script sur « Success » ou « Error »
Une colonne de bouton doit également être configurée pour exécuter le script.
Le script
Adaptez les identifiants SMTP et les noms de colonnes à votre configuration. Le script utilise context.current_row pour lire les données de la ligne où le bouton a été cliqué.
from seatable_api import Base, context
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
base = Base(context.api_token, context.server_url)
base.auth()
# SMTP configuration
SMTP_SERVER = "smtp.example.com"
SMTP_PORT = 587
SMTP_USER = "your-email@example.com"
SMTP_PASSWORD = "your-app-password"
TABLE_NAME = "Table1"
# Read data from current row
row = context.current_row
if not row:
print("ERROR: This script must be run via a button.")
else:
recipient = row.get('Recipient', '')
subject = row.get('Subject', '')
body = row.get('Body', '')
if not recipient:
print("ERROR: No recipient specified.")
elif not subject:
print("ERROR: No subject specified.")
else:
msg = MIMEMultipart()
msg['From'] = SMTP_USER
msg['To'] = recipient
msg['Subject'] = subject
msg.attach(MIMEText(body or '', 'plain'))
try:
with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
server.starttls()
server.login(SMTP_USER, SMTP_PASSWORD)
server.send_message(msg)
base.update_row(TABLE_NAME, row['_id'], {'Status': 'Success'})
print(f"Email sent to {recipient}")
except Exception as e:
base.update_row(TABLE_NAME, row['_id'], {'Status': 'Error'})
print(f"Failed: {e}")
Serveurs SMTP
Paramètres SMTP courants :
| Fournisseur | Serveur | Port |
|---|---|---|
| Gmail | smtp.gmail.com | 587 |
| Outlook / Microsoft 365 | smtp-mail.outlook.com | 587 |
| Serveur propre | Votre serveur SMTP | 587 ou 465 |
Pour les e-mails HTML, remplacez 'plain' par 'html' dans l’appel MIMEText.
Pour la référence complète des fonctions, consultez le SeaTable Developer Manual .