ホームページ php教程 php手册 PHP を使用して MIME メールを送信する (2)

PHP を使用して MIME メールを送信する (2)

Jun 21, 2016 am 09:10 AM
content quot type

マイム

「それでは、MIME 準拠のメッセージはどのように作成するのでしょうか?」 上記の一般的な説明を踏まえて、いわゆる MIME メッセージが何であるかを見てみましょう。

最も単純なMIMEメッセージ
このメッセージにはセグメント、つまり添付ファイルがありません。ただし、これは MIME メッセージであるため、必要なヘッダーが必要です。

差出人: php@php.net
宛先: 'Alex (the Great)'
件名: ブセファロス
MIME-バージョン: 1.0

こんにちは、アレクサンダー

元気ですか?中身は何もなく、MIME ヘッダーを持つ単純な RFC-822
準拠のメッセージ (テキスト メール) です。 Content-Type ヘッダーが指定されていない場合は、Content-Type: text/plain;charset='us-ascii' であると想定されることに注意してください。送信者: 'Alex (the Great)' 宛先: php@php.net
件名: ブセファロス
MIME-Version: 1.0
Content-Type: image/jpg=' buce.jpg'
Content -Transfer-Encoding: Base64
Content-Description: 彼を自分で見てください

<....base64 でエンコードされた Bucephalus の jpg 画像...>「こんにちは、でも私は欲しいです」 Word ドキュメントと子犬の写真を同じメールで送信するには...
!」と、あるユーザーは言いました! true
の場合、上記の例は単純すぎるため、愛好家と現代の電子メール処理ニーズの両方をサポートするのに十分なコンテンツがありません。実際、
多くの電子メール クライアントでは説明フィールドさえ表示できません。

これが私たちが直面している「多部情報」です。


マルチパートメッセージ
この概念により、1 つのメールで複数のアイテムを送信できます。たとえば、Alexander が php@php.net に自分の馬の
写真を、その馬の家系図と素晴らしい説明とともに電子メールで送信したいとします。このような単純な要件は、マルチパート メッセージの概念なしでは満たすことができません。この場合、
受信者が写真、家族図、素晴らしい説明を取得できるように、Content-Type ヘッダーを使用して電子メールのさまざまな部分をサポートするラッパーを作成しました。

Content-Type ヘッダーの値は「multipart」になり、これは完全な電子メール メッセージであり、このヘッダーは
メッセージのみをカプセル化することを示します。また、「混合」サブタイプもあります (結局のところ、写真、家系図、および 7 ビットのテキスト情報は異なるタイプですよね?)。

全体像を見てみましょう:


From: 'Alex (the Great)'
To: php@php.net
Subject: re: Bucepolus
MIME-Version : 1.0
Content-Type: multipart/mixed;
boundary="XX-1234DED00099A";
Content-Transfer-Encoding: 7bit

これは MIME エンコードされたメッセージです

--XX-1234DED00099A
Content-Type: text/ plain ; charset=us-ascii
Content-Transfer-Encoding: 7bit

PHP さん、

私の馬、Bucephalus の血統表と写真を添付し​​ます

Alex

--XX-1234DED00099A
Content-Type : image/jpg;
name="buce.jpg";
Content-Transfer-Encoding:base64
Content-Description:「ブセファロスの写真」

<....base64 jpg>
--XX-1234DED00099A
Content-Type: application/octet-stream;
name="pedigree.doc"
Content-Transfer-Encoding: Base64
Content-Description: "偉大な馬の血統表"

<....Base64 encoded doc (pedigree.doc) of Bucepolus...>

--XX-1234DED00099A--

複雑そうですね。とにかく、詳細を見てみましょう:

MIME ヘッダーの Content-Transfer-Encoding が「7bit」であることに気づいた場合。 Content-Type は
multipart/mixed であるため、エンコーディングは 7 ビット、8 ビット、またはバイナリのいずれかである必要があります。7 ビットは広く使用されている形式です。
このようなメッセージにはさまざまな情報が含まれています。クライアント プログラムは、JPG 画像、ドキュメント、通常のテキストの違いをどのようにして認識するのでしょうか? Content-Type の後に、boundary="XX-1234DED00099A" パラメーターがあることがわかります。この値は、メールのさまざまな
部分を区切るために使用されます。これは MIME 境界タグと呼ばれます。メッセージ範囲を超えた場合の混乱を避けるために、境界タグの値はできる限り一意である必要があります。
「警告」メッセージ (翻訳者: 「これは MIME でエンコードされた
メッセージです」) は、MIME に準拠していないクライアント
がそれを表示できるようにするためのものであり、そうしないと空メールの意味が理解できなくなります。
さて、境界マーカーに戻ります。このシンプルなメールを観察すると、毎分境界マーク (XX-1234DED00099A) ​​が表示されることに気づくでしょう
両方が表示されます。つまり、各パーツ間に境界マークが使用されますが、各境界マークは 2 つのコネクタで始まります。
最後の MIME セグメントの後、境界マークはこれら 2 つの端の文字で始まるだけでなく、
それらの文字で終わることに注意することが重要です。これはメッセージの範囲を定義するため、忘れてはなりません。
最初の 2 つの MIME セグメントを見てみましょう:
最初のセグメントは通常のテキスト メッセージなので、Content-Type は text/plain、エンコーディングは 7 ビットです (省略することもできます。
デフォルトでこのようにして)。
2枚目はJPEG画像です。対応する表現は Content-Type: image/jpg です。 name="buce.jpg" (パラメーターと呼ばれる
Content-Type の後に表示されます) は、ファイルの名前を示します。これは、クライアント プログラムで表示される添付ファイル
の名前です。 name="buce.jpg" が指定されていない場合、説明フィールド (指定されている場合) が添付ファイルの名前として表示されます (ただし、これはすべてのクライアントで均一ではありません)。
JPEG に注意してください
クライアント プログラムがインライン添付ファイルを表示できる場合は、電子メールに画像を表示できます。あるいは、添付ファイルをどのように表示するかをクライアントに指定することもできます。たとえば、

Content-Disposition: 添付ファイル ヘッダーが存在する場合、JPEG 画像が添付ファイル アイコンとして表示されます。





このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Go での Type キーワードの用途は何ですか? Go での Type キーワードの用途は何ですか? Sep 06, 2023 am 09:58 AM

Go での Type キーワードの使用には、新しい型エイリアスの定義または新しい構造型の作成が含まれます。詳細な導入: 1. 型エイリアス。既存の型のエイリアスを作成するには、「type」キーワードを使用します。このエイリアスは新しい型を作成しませんが、既存の型に新しい名前を提供するだけです。型エイリアスはコードを改善できます。コードの可読性により、コードがより明確になります; 2. 構造タイプ。新しい構造タイプを作成するには、「type」キーワードを使用します。構造は、複数のフィールドを含むカスタム タイプを定義するために使用できる複合タイプです。

Ubuntu のモバイル ハードディスク エラーの解決: ファイル システム タイプ exfat が不明です Ubuntu のモバイル ハードディスク エラーの解決: ファイル システム タイプ exfat が不明です Jan 05, 2024 pm 01:18 PM

Ubuntu がモバイル ハードディスクをマウントするとエラーが発生します: mount:knownfilesystemtype'exfat' 処理方法は次のとおりです: Ubuntu13.10 または exfat-fuse をインストール: sudoapt-getinstallexfat-fuseUbuntu13.04 以下 sudoapt-add-repositoryppa:relan /exfatsudoapt-getupdatesudoapt-getinstallfuse- exfatCentOS Linux マウント exfat フォーマットの USB ディスク エラー解決方法 CentOS で extfa をロードする

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Linux系コマンド Linux系コマンド Mar 20, 2024 pm 05:06 PM

このガイドでは、Linux の「type」コマンドについて詳しく学習します。前提条件: このガイドで説明する手順を実行するには、次のコンポーネントが必要です。 適切に構成された Linux システム。テストと学習を目的とした LinuxVM の作成方法をご覧ください。コマンド ライン インターフェイスの基本的な理解 Linux の Type コマンドは、他の Linux 固有のコマンド (例: ls、chmod、shutdown、vi、grep、pwd など) とは異なります。引数として表示される Bash 関数。提供されるコマンド タイプに関する情報。 $type Bash に加えて、他のシェル (Zsh、Ksh など) も付属しています。

Redis の種類とエンコーディングの原則と使用法は何ですか? Redis の種類とエンコーディングの原則と使用法は何ですか? May 29, 2023 pm 04:21 PM

概要 Redis は、さまざまなシナリオで広く使用されているオープンソースの高性能キー/値データベースです。 Redisでは、データ型(type)とエンコーディング(encoding)は非常に重要な概念です。このブログでは、Redis でサポートされるデータ型、対応するエンコード方法、および基礎となる実装原則について詳しく紹介します。 Redis キーの内部エンコーディングを表示するには、Redis コマンド OBJECTENCODINGkey を使用できます。このうち key はクエリしたいキー名です。たとえば、mykey という名前のキーの内部エンコードをクエリする場合は、次のコマンドを実行できます: 127.0.0.1:6379&gt;objectencodin

DeepSeekアカウントを登録するときに必要な情報は何ですか? DeepSeekアカウントを登録するときに必要な情報は何ですか? Mar 12, 2025 pm 02:33 PM

必要な情報:1。登録。携帯電話番号登録。登録が成功した後、通常、ニックネーム、性別、誕生日などの基本的な個人情報を入力する必要があります。

「[Vue warn]: Invalid prop: type check」エラーの解決方法 「[Vue warn]: Invalid prop: type check」エラーの解決方法 Aug 26, 2023 pm 10:40 PM

「[Vuewarn]:Invalidprop:typecheck」エラーを修正する方法 Vue.js は、ユーザー インターフェイスを構築するための人気のある JavaScript フレームワークです。 Vue.js を使用してアプリケーションを開発する場合、いくつかのエラー メッセージが表示されることがあります。その 1 つは「[Vuewarn]:Invalidprop:typecheck」です。このエラーは通常、コンポーネント内の属性の不適切な使用によって発生します。

idea で SpringBoot プロジェクトを作成する場合、タイプ選択 Maven プロジェクトと Maven pom の違いは何ですか? idea で SpringBoot プロジェクトを作成する場合、タイプ選択 Maven プロジェクトと Maven pom の違いは何ですか? May 16, 2023 pm 04:52 PM

1) アイデアを開いて SpringBoot プロジェクトの作成を開始します 2) SpringInitializr を選択し、適切な jdk バージョンを選択して、「次へ」をクリックします [タイプ] オプションを操作する場合、次の 4 つのプロジェクト タイプから選択できます: MavenProject (GenerateaMavenbasedprojectarchive) MavenPOM (GenerateaMavenpom. xml) GradleProject (Gradle ベースのプロジェクト アーカイブを生成) )GradleConfig(Gradlebuildfile を生成)

See all articles