


Lors de l'exécution de campagnes de marketing par e-mail, l'un des plus grands défis est de garantir que vos messages parviennent dans la boîte de réception plutôt que dans le dossier spam.
Apache SpamAssassin est un outil largement utilisé par de nombreux clients de messagerie et outils de filtrage de messagerie pour classer les messages comme spam. Dans cet article, nous explorerons comment tirer parti de SpamAssassin pour valider si votre e-mail sera marqué comme spam et pourquoi il est marqué ainsi.
La logique sera conditionnée sous forme d'API et déployée en ligne, afin qu'elle puisse être intégrée à votre flux de travail.
Pourquoi Apache SpamAssassin ?
Apache SpamAssassin est une plateforme open source de détection de spam gérée par Apache Software Foundation. Il utilise une multitude de règles, un filtrage bayésien et des tests de réseau pour attribuer un « score » de spam à un e-mail donné. En règle générale, un e-mail ayant un score de 5 ou plus présente un risque élevé d'être signalé comme spam.
Étant donné que le score de SpamAssassin est transparent et bien documenté, vous pouvez également l'utiliser pour identifier exactement les aspects de votre courrier électronique qui provoquent des scores de spam élevés et améliorer votre rédaction.
Premiers pas avec SpamAssassin
SpamAssassin est conçu pour fonctionner sur les systèmes Linux. Vous aurez besoin d'un système d'exploitation Linux ou créerez une VM Docker pour l'installer et l'exécuter.
Sur les systèmes Debian ou Ubuntu, installez SpamAssassin avec :
apt-get update && apt-get install -y spamassassin sa-update
La commande sa-update garantit que les règles de SpamAssassin sont à jour.
Une fois installé, vous pouvez diriger un message électronique vers l'outil de ligne de commande de SpamAssassin. Le résultat comprend une version annotée de l'e-mail avec les scores de spam et explique quelles règles sont déclenchées.
Une utilisation typique pourrait ressembler à ceci :
spamassassin -t results.txt
results.txt contiendra alors l'e-mail traité avec les en-têtes et les scores de SpamAssassin.
Utilisez FastAPI pour envelopper SpamAssassin en tant qu'API
Ensuite, créons une API simple qui accepte deux champs de courrier électronique : sujet et html_body. Il transmettra les champs à SpamAssassin et renverra le résultat de la validation.
Exemple de code FastAPI
from fastapi import FastAPI from datetime import datetime, timezone from email.utils import format_datetime from pydantic import BaseModel import subprocess import re def extract_analysis_details(text): rules_section = re.search(r"Content analysis details:.*?(pts rule name.*?description.*?)\n\n", text, re.DOTALL) if not rules_section: return [] rules_text = rules_section.group(1) pattern = r"^\s*([-\d.]+)\s+(\S+)\s+(.+)$" rules = [] for line in rules_text.splitlines()[1:]: match = re.match(pattern, line) if match: score, rule, description = match.groups() rules.append({ "rule": rule, "score": float(score), "description": description.strip() }) return rules app = FastAPI() class Email(BaseModel): subject: str html_body: str @app.post("/spam_check") def spam_check(email: Email): # assemble the full email message = f"""From: example@example.com To: recipient@example.com Subject: {email.subject} Date: {format_datetime(datetime.now(timezone.utc))} Content-Type: text/html; charset="UTF-8" {email.html_body}""" # Run SpamAssassin and capture the output directly output = subprocess.run(["spamassassin", "-t"], input=message.encode('utf-8'), capture_output=True) output_str = output.stdout.decode('utf-8', errors='replace') details = extract_analysis_details(output_str) return {"result": details}
La réponse contiendra les détails de l'analyse des résultats de SpamAssassin.
Prenons cette entrée comme exemple :
subject: Test Email html_body: <p>This is an <b>HTML</b> test email.</p>
La réponse serait comme ceci :
[ { "rule": "MISSING_MID", "score": 0.1, "description": "Missing Message-Id: header" }, { "rule": "NO_RECEIVED", "score": -0.0, "description": "Informational: message has no Received headers" }, { "rule": "NO_RELAYS", "score": -0.0, "description": "Informational: message was not relayed via SMTP" }, { "rule": "HTML_MESSAGE", "score": 0.0, "description": "BODY: HTML included in message" }, { "rule": "MIME_HTML_ONLY", "score": 0.1, "description": "BODY: Message only has text/html MIME parts" }, { "rule": "MIME_HEADER_CTYPE_ONLY", "score": 0.1, "description": "'Content-Type' found without required MIME headers" } ]
Déployer l'API en ligne
L'exécution de SpamAssassin nécessite un environnement Linux avec le logiciel installé. Traditionnellement, vous pourriez avoir besoin d'une instance EC2 ou d'un droplet DigitalOcean à déployer, ce qui peut être coûteux et fastidieux, surtout si votre utilisation est faible.
Quant aux plates-formes sans serveur, elles ne fournissent souvent pas de moyen simple d'exécuter des packages système comme SpamAssassin.
Maintenant, avec Leapcell, vous pouvez déployer n'importe quel package système comme SpamAssassin, tout en gardant le service sans serveur - vous ne payez que pour les invocations, ce qui est généralement moins cher.
Déployer l'API sur Leapcell est très simple. Vous n'avez pas à vous soucier de la façon de configurer un environnement Linux ou de créer un Dockerfile. Sélectionnez simplement l'image Python à déployer et remplissez correctement le champ "Build Command".
Une fois déployé, vous disposerez d’un point de terminaison que vous pourrez appeler à la demande. Chaque fois que votre API est invoquée, elle exécutera SpamAssassin, évaluera l'e-mail et renverra la réponse.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Python convient à la science des données, au développement Web et aux tâches d'automatisation, tandis que C convient à la programmation système, au développement de jeux et aux systèmes intégrés. Python est connu pour sa simplicité et son écosystème puissant, tandis que C est connu pour ses capacités de contrôle élevées et sous-jacentes.

Vous pouvez apprendre les concepts de programmation de base et les compétences de Python dans les 2 heures. 1. Apprenez les variables et les types de données, 2. Flux de contrôle maître (instructions et boucles conditionnelles), 3. Comprenez la définition et l'utilisation des fonctions, 4. Démarrez rapidement avec la programmation Python via des exemples simples et des extraits de code.

Python est largement utilisé dans les domaines du développement Web, de la science des données, de l'apprentissage automatique, de l'automatisation et des scripts. 1) Dans le développement Web, les cadres Django et Flask simplifient le processus de développement. 2) Dans les domaines de la science des données et de l'apprentissage automatique, les bibliothèques Numpy, Pandas, Scikit-Learn et Tensorflow fournissent un fort soutien. 3) En termes d'automatisation et de script, Python convient aux tâches telles que les tests automatisés et la gestion du système.

Vous pouvez apprendre les bases de Python dans les deux heures. 1. Apprenez les variables et les types de données, 2. Structures de contrôle maître telles que si les instructions et les boucles, 3. Comprenez la définition et l'utilisation des fonctions. Ceux-ci vous aideront à commencer à écrire des programmes Python simples.

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Chargement des fichiers de cornichons dans Python 3.6 Rapport de l'environnement Erreur: modulenotFoundError: NomoduLenamed ...

Comment résoudre le problème de la segmentation des mots jieba dans l'analyse des commentaires pittoresques? Lorsque nous effectuons des commentaires et des analyses pittoresques, nous utilisons souvent l'outil de segmentation des mots jieba pour traiter le texte ...


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Dreamweaver Mac
Outils de développement Web visuel

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

SublimeText3 version chinoise
Version chinoise, très simple à utiliser