電子メール マーケティング キャンペーンを実行する場合、最大の課題の 1 つは、メッセージがスパム フォルダーではなく受信トレイに確実に届くようにすることです。
Apache SpamAssassin は、メッセージをスパムとして分類するために、多くの電子メール クライアントおよび電子メール フィルタリング ツールで広く使用されているツールです。この投稿では、SpamAssassin を活用して、メールがスパムとしてマークされるかどうか、およびスパムとしてマークされる理由を検証する方法を説明します。
ロジックは API としてパッケージ化され、オンラインでデプロイされるため、ワークフローに統合できます。
Apache SpamAssassin を選ぶ理由
Apache SpamAssassin は、Apache Software Foundation によって管理されているオープンソースのスパム検出プラットフォームです。多数のルール、ベイジアン フィルタリング、およびネットワーク テストを使用して、特定の電子メールにスパムの「スコア」を割り当てます。一般に、スコア 5 以上のメールはスパムとしてフラグが立てられるリスクが高くなります。
SpamAssassin のスコアリングは透明性があり、十分に文書化されているため、電子メールのどの側面がスパム スコアの高さを引き起こしているかを正確に特定し、文章を改善するために使用することもできます。
SpamAssassin を始める
SpamAssassin は Linux システム上で実行するように設計されています。 Linux OS をインストールして実行するには、Linux OS を使用するか、Docker VM を作成する必要があります。
Debian または Ubuntu システムでは、次のコマンドを使用して SpamAssassin をインストールします。
apt-get update && apt-get install -y spamassassin sa-update
sa-update コマンドは、SpamAssassin のルールが最新であることを保証します。
インストールすると、電子メール メッセージを SpamAssassin のコマンドライン ツールにパイプすることができます。出力には、スパム スコアを含む注釈付きバージョンの電子メールが含まれており、どのルールがトリガーされるかが説明されています。
典型的な使用法は次のようになります:
spamassassin -t results.txt
results.txt には、SpamAssassin のヘッダーとスコアを含む処理された電子メールが含まれます。
FastAPI を使用して SpamAssassin を API としてラップする
次に、件名と html_body という 2 つの電子メール フィールドを受け入れる単純な API を作成しましょう。フィールドを SpamAssassin に渡し、検証結果を返します。
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}
応答には、SpamAssassin の結果の分析詳細が含まれます。
この入力を例として見てみましょう:
subject: Test Email html_body: <p>This is an <b>HTML</b> test email.</p>
応答は次のようになります:
[ { "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" } ]
API をオンラインでデプロイする
SpamAssassin を実行するには、ソフトウェアがインストールされた Linux 環境が必要です。従来は、デプロイに EC2 インスタンスまたは DigitalOcean ドロップレットが必要になる場合がありましたが、特に使用量が少ない場合は、コストがかかり、面倒な作業になる可能性があります。
サーバーレス プラットフォームに関しては、SpamAssassin のようなシステム パッケージを実行する簡単な方法が提供されていないことがよくあります。
Leapcell を使用すると、SpamAssassin のようなシステム パッケージをデプロイしながら、サービスをサーバーレスに保つことができます。料金は呼び出しに対してのみ発生し、通常は安くなります。
Leapcell への API のデプロイは非常に簡単です。 Linux 環境のセットアップ方法や Dockerfile の構築方法について心配する必要はありません。デプロイする Python イメージを選択し、「ビルド コマンド」フィールドに適切に入力するだけです。
デプロイが完了すると、オンデマンドで呼び出すことができるエンドポイントが作成されます。 API が呼び出されるたびに、SpamAssassin が実行され、電子メールにスコアが付けられ、応答が返されます。
以上がマーケティングメールをスパムから守るための API を構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

この記事では、Pythonライブラリである美しいスープを使用してHTMLを解析する方法について説明します。 find()、find_all()、select()、およびget_text()などの一般的な方法は、データ抽出、多様なHTML構造とエラーの処理、および代替案(SEL

Pythonの統計モジュールは、強力なデータ統計分析機能を提供して、生物統計やビジネス分析などのデータの全体的な特性を迅速に理解できるようにします。データポイントを1つずつ見る代わりに、平均や分散などの統計を見て、無視される可能性のある元のデータの傾向と機能を発見し、大きなデータセットをより簡単かつ効果的に比較してください。 このチュートリアルでは、平均を計算し、データセットの分散の程度を測定する方法を説明します。特に明記しない限り、このモジュールのすべての関数は、単に平均を合計するのではなく、平均()関数の計算をサポートします。 浮動小数点数も使用できます。 ランダムをインポートします インポート統計 fractiから

この記事では、深い学習のためにTensorflowとPytorchを比較しています。 関連する手順、データの準備、モデルの構築、トレーニング、評価、展開について詳しく説明しています。 特に計算グラップに関して、フレームワーク間の重要な違い

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

この記事では、コマンドラインインターフェイス(CLI)の構築に関するPython開発者をガイドします。 Typer、Click、Argparseなどのライブラリを使用して、入力/出力の処理を強調し、CLIの使いやすさを改善するためのユーザーフレンドリーな設計パターンを促進することを詳述しています。

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

この記事では、Pythonにおける仮想環境の役割について説明し、プロジェクトの依存関係の管理と競合の回避に焦点を当てています。プロジェクト管理の改善と依存関係の問題を減らすための作成、アクティベーション、およびメリットを詳しく説明しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ホットトピック



