検索
ホームページバックエンド開発PHPチュートリアルsendgridで入ってくるメールを処理します

SendGrid:電子メールをアプリに変換するための強力なツール

SendGridは、バッチでメールを送信するサービスであるだけでなく、あまり知られていない強力な機能を提供します。 Simple Configurationを使用すると、指定されたドメイン名の下のすべての電子メールをSendGrid処理して、サーバーに電子メールメッセージを送信できます。この記事では、sendgridを使用して「記事へのメール」関数を構築する方法を紹介します。

コアポイント:

  • SendGridのインバウンドメール解像度関数は、指定されたドメイン名からすべてのメッセージを処理し、POSTリクエストの形式で指定されたURIにメール情報を送信できます。
  • Webhookをセットアップすることにより、受信したメールをカスタマイズできます。
  • SendGridのインバウンド電子メール解像度関数は、電子メールの到着リマインダー、クラウドストレージへの添付ファイルのアップロード、電子メール返信フォーラム通知、登録解除リクエストなどなど、広く使用されています。
  • SendGridのインバウンド解像度Webhookは、ワイルドカードサブドメインの使用をサポートして複数の電子メールアドレスを処理し、HTTPSセキュアデータ送信をサポートします。添付ファイルの合計サイズは20MBに制限され、ダッシュボードアクティビティログを提供して簡単にデバッグします。

初心者:

この記事のサンプルコードは、スリムフレームワークフレームワークに基づいています。簡単にデバッグするには、次のコンテンツを

セクションに追加してください。 composer.json requireフレームワークのインスタンス化コードを

に変更し、ロガーを構成します。
"slim/extras": "dev-develop"

サンプル構成ファイルをinclude/services.phpにコピーし、構成値(データベース接続情報など)を設定します。次のコードを追加して、ログファイルのあるディレクトリを指定し、画像をアップロードします。

$app = new Slim(array(
    'view' => new Twig(),
    'templates.path' => $c['config']['path.templates'],
    'log.writer' => new \Slim\Extras\Log\DateTimeFileWriter(array(
        'path' => dirname($c['config']['path.logs']),
        'name_format' => 'Y-m-d',
        'message_format' => '%label% - %date% - %message%'
    ))
));
これらのディレクトリを作成し、Webサーバーに書き込みアクセス許可があることを確認します。

config/config.php当社のアプリは、登録されたユーザーに電子メールエイリアスを提供します。受信者の電子メールアドレスの

シンボルの前にパーツを一致させることにより、それを投稿したユーザーを決定できます。実際のアプリケーションでは、より複雑なエイリアスルールを設定し、電子メールの送信アドレスを制限する必要がある場合があります。データベース構造は、ユーザーと記事を保存するための2つのテーブルを定義します。
'path.logs'    => $basedir . 'logs/',
'path.uploads' => $basedir . 'public/uploads/'

sendgridアカウントが必要です(無料アカウントで十分です)。登録後、[開発者]ページに移動し、[着信電子メールを分析する]をクリックします。ホスト名とコールバックURLを入力します。

@

CREATE TABLE users (
    id INTEGER NOT NULL AUTO_INCREMENT,
    name VARCHAR(128) NOT NULL ,
    alias VARCHAR(45) NOT NULL ,

    PRIMARY KEY (id) ,
   INDEX alias (alias ASC)
);

CREATE  TABLE posts (
    id INTEGER NOT NULL AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    body TEXT NOT NULL,
    image varchar(255),
    user_id INTEGER NOT NULL,

    PRIMARY KEY (id)
);
指定されたドメイン名でメッセージを受信すると、SendGridは、送信者、受信者、電子メールボディ、添付ファイル情報を含むPOSTリクエストをURLに送信します。最後に、ドメイン名にMXレコードを追加する必要があります。特定の操作は、ホスティングプロバイダーによって異なります。

コールバック関数をビルド:Handle Incoming Email with SendGrid

あなたのアプリケーションは、あなたが指定したURLのPOST要求に応答する必要があります。

"slim/extras": "dev-develop"

sendgridの「ping」テストが4xxまたは5xxエラーを返した場合、リクエストをキープして3日間再試行します。したがって、成功したPINGテストでは、200のステータスコードを返す必要があります。 SendGridの投稿リクエストには、メールに関するさまざまな情報が含まれています。詳細については、SendGrid APIドキュメントを参照してください。主に次のフィールドに焦点を当てています:

Handle Incoming Email with SendGrid

toフィールド形式は多様であるため、複数の受信者を解析するために正規表現が必要です。

$app = new Slim(array(
    'view' => new Twig(),
    'templates.path' => $c['config']['path.templates'],
    'log.writer' => new \Slim\Extras\Log\DateTimeFileWriter(array(
        'path' => dirname($c['config']['path.logs']),
        'name_format' => 'Y-m-d',
        'message_format' => '%label% - %date% - %message%'
    ))
));
受信者ごとに、エイリアスセクションを抽出し、一致するユーザーを見つけます:

'path.logs'    => $basedir . 'logs/',
'path.uploads' => $basedir . 'public/uploads/'
記事を作成します:

CREATE TABLE users (
    id INTEGER NOT NULL AUTO_INCREMENT,
    name VARCHAR(128) NOT NULL ,
    alias VARCHAR(45) NOT NULL ,

    PRIMARY KEY (id) ,
   INDEX alias (alias ASC)
);

CREATE  TABLE posts (
    id INTEGER NOT NULL AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    body TEXT NOT NULL,
    image varchar(255),
    user_id INTEGER NOT NULL,

    PRIMARY KEY (id)
);
これで、基本的な「記事への電子メール」機能があります!次に、添付ファイル処理機能を追加して、ユーザーが電子メールの添付ファイルを介して画像を追加できるようにします。 SendGridのPOSTリクエストには、

パラメーターが含まれており、添付ファイルの数を示します。添付ファイルはリクエストと一緒に投稿され、処理方法はWebフォームファイルのアップロードと同じです。 attachments

$app->post('/endpoints/email', function () use ($app, $c) {

概要: この記事では、SendGridのインバウンド電子メール解像度関数の簡単なアプリケーションである「記事へのメール」機能を紹介します。これにより、ユーザーは電子メールを送信して記事を作成できます。簡単なコールバック関数を使用すると、メールの到着リマインダー、クラウドストレージへの添付ファイルのアップロード、電子メール返信フォーラム通知、登録解除リクエストなど、さまざまな興味深い関数を実装できます。

(後続のコンテンツ、すなわちFAQパーツは、記事の長さのために個別に処理することをお勧めします。FAQパーツは、新しい質問として個別に提出できます。)

以上がsendgridで入ってくるメールを処理しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Laravelでフラッシュセッションデータを使用しますLaravelでフラッシュセッションデータを使用しますMar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

LaravelのバックエンドでReactアプリを構築する:パート2、ReactLaravelのバックエンドでReactアプリを構築する:パート2、ReactMar 04, 2025 am 09:33 AM

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

PHPのカール:REST APIでPHPカール拡張機能を使用する方法PHPのカール:REST APIでPHPカール拡張機能を使用する方法Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキングLaravelテストでの簡略化されたHTTP応答のモッキングMar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプトCodecanyonで12の最高のPHPチャットスクリプトMar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

Laravelの通知Laravelの通知Mar 04, 2025 am 09:22 AM

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します

PHPにおける後期静的結合の概念を説明します。PHPにおける後期静的結合の概念を説明します。Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPロギング:PHPログ分析のベストプラクティスPHPロギング:PHPログ分析のベストプラクティスMar 10, 2025 pm 02:32 PM

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境