PHP経由でメールシステムを呼び出す
このチュートリアルでは、BlueSMTPMail()とBlueFormSend()のパラメータを学び、内部または外部の送信を設定し、添付ファイル、HTMLコンテンツ、送信プロトコルの扱い方を説明します。
チュートリアルの目的
注意: このチュートリアルは開発者向けで、bluetronix CMSの統合メールシステムをPHPから直接呼び出す方法を説明しています。
bluetronix CMSは、メール送信のための中心的なPHP機能を提供します。
これにより、SMTP接続、メールアカウント、基本的な送信機能を各PHPスクリプトごとに再プログラムする必要がなくなります。
直接のEメールおよびニュースレター送信には、以下の機能が利用できます:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
フォームのEメール送信には、以下の機能が追加で利用できます:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
BlueSMTPMail()
BlueSMTPMail()を使用して、bluetronix CMSの中央メールシステムを介して通常のEメールとニュースレターを送信できます。
関数呼び出しは次のようになります:
BlueSMTPMail(
$MailType,
$MailAccount,
$SMTPType,
$From,
$To,
$NewsletterTo,
$Subject,
$TextContent,
$HTMLContent,
$Attachments,
$EmbedImages,
$MailPlaceholderReplacement,
$FormEntry
);
$MailType
送信するEメールの種類を決定します。
可能な値:
Mail
Newsletter
例:
$MailType = "Mail";
または:
$MailType = "Newsletter";
$MailAccount
$MailAccountは、使用されるSMTP設定のEメールアカウントを決定します。
この値によって、CMSデータベーステーブルから対応するSMTP構成データが読み込まれます。
どの構成が使用されるかは、さらに$SMTPTypeに依存します。
$SMTPType
内部または外部のEメールアカウントを使用するかを決定します。
可能な値:
Intern
Extern
内部
次のような場合:
$SMTPType = "Intern";
bluetronix CMSで直接設定されたEメールアカウントが使用されます。
アカウントは次の場所にあります:
Email → Accounts
$Fromで使用される送信者アドレスは、そこでアカウントとして存在している必要があります。
外部
次のような場合:
$SMTPType = "Extern";
外部SMTPアクセス情報が使用されます。
これらはCMS内で次のように管理されます:
Email → Server - Extern
管理されています。
$Fromで使用される送信者アドレスは、そこで適切に設定されている必要があります。
$From
送信者のメールアドレスを含みます。
例:
$From = "info@example.com";
メールアドレスは、選択したSMTP構成に合致している必要があります。
$To
通常のメールの受信者のメールアドレスを含みます。
例:
$To = "customer@example.com";
通常のメール送信では、この変数が受信者として使用されます。
$NewsletterTo
$NewsletterToはニュースレター送信時に使用されます。
この変数には、テキストとして複数のメールアドレスが含まれています。各メールアドレスは改行で区切られています。
例:
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject
メールの件名を含みます。
例:
$Subject = "Welcome to our website";
$TextContent
メールのプレーンテキスト部分を含みます。
この部分は、HTMLメールを表示できないメールプログラムで使用されることがあります。
例:
$TextContent = "Thank you for your request.";
$HTMLContent
メールのHTML部分を含みます。
例:
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
これにより、見出し、テキスト、リンク、画像、その他のHTML要素を含む書式付きメールが送信できます。
$Attachments
$Attachmentsを使用すると、ファイルをメールに添付できます。
ファイルは、ウェブサイト内のパスで指定されます。
例:
$Attachments = "/bx_doc/Intro.pdf";
複数の添付ファイルがある場合、各ファイルのパスは改行で区切られます。
例:
$Attachments = "/bx_doc/Intro.pdf\n/bx_doc/PriceList.pdf";
$EmbedImages
$EmbedImagesを使用することで、画像をメールに直接埋め込むかどうかを設定できます。
例:
$EmbedImages = "ja";
オプションが有効な場合、HTMLメール内で使用される画像は、外部URLからのみではなく、メールに直接統合されます。
これにより、受信者は画像をウェブサーバーから別に読み込むことなく、直接メール内で利用可能です。
$MailPlaceholderReplacement
$MailPlaceholderReplacementを使用すると、以下の中のプレースホルダーを:
$TextContent
$HTMLContent
個別の値で置き換えることができます。
原則は次のとおりです:
Search
↓
Replace
これにより、例えばメール内にパーソナライズされたコンテンツを生成できます。
典型的な使用例は次のとおりです:
- Name des Empfängers
- Kundennummer
- Bestellnummer
- individuelle Links
- weitere dynamische Inhalte
$FormEntry
$FormEntryを使用することで、送信をフォームアーカイブに追加して保存するかどうかを設定できます。
次のような場合:
$FormEntry = "JA";
データベーステーブルに追加のエントリが作成されます:
00_form
保存されます。
これにより、送信はフォームまたはアーカイブエントリとして同時に記録されます。
例: 通常のメールを送信する
以下の例では、内部メールアカウントを使用して通常のHTMLおよびテキストメールを送信します。
$MailType = "Mail";
$MailAccount = "info@example.com";
$SMTPType = "Intern";
$From = "info@example.com";
$To = "customer@example.com";
$NewsletterTo = "";
$Subject = "Your request";
$TextContent = "Thank you for your request.";
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
$Attachments = "/bx_doc/Intro.pdf";
$EmbedImages = "ja";
$MailPlaceholderReplacement = "";
$FormEntry = "NEIN";
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
手順は簡略化すると次の通りです:
PHP
↓
BlueSMTPMail()
↓
internen Mail-Account laden
↓
SMTP-Verbindung verwenden
↓
E-Mail erzeugen
↓
E-Mail versenden
↓
MailCache-Eintrag erzeugen
例: ニュースレターを送信する
ニュースレターの場合、$MailTypeは次のように設定されます:
Newsletter
次のようになります。
受信者は、その後$NewsletterToを介して渡されます。
$MailType = "Newsletter";
$MailAccount = "newsletter@example.com";
$SMTPType = "Intern";
$From = "newsletter@example.com";
$To = "";
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject = "Our latest news";
$TextContent = "Discover our latest news and products.";
$HTMLContent = "<h1>Our latest news</h1><p>Discover our latest news and products.</p>";
$Attachments = "";
$EmbedImages = "ja";
$MailPlaceholderReplacement = "";
$FormEntry = "NEIN";
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
各ニュースレターの受信者は$NewsletterTo内で改行で区切られます。
外部SMTP接続を使用する
外部メールサーバーを使用する必要がある場合は、次のようにします:
$SMTPType = "Extern";
次のようになります。
SMTP接続情報は事前に以下で設定されている必要があります:
Email → Server - Extern
設定されている必要があります。
例:
$SMTPType = "Extern";
$From = "mail@external-domain.com";
$MailAccount = "mail@external-domain.com";
BlueFormSend()
直接のメール送信に加えて、次の機能が利用可能です:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
が利用できます。
この機能はCMSフォームと連携したメール送信のために特に設計されています。
変数はすでに完全に英語表記です。
BlueFormSend()のパラメータ
| 変数 | 使用法 |
|---|---|
$SMTPType |
内部または外部SMTP送信を選択 |
$SendMail |
フォームのメール送信を制御 |
$SendSubject |
フォームメールの件名 |
$CopyToCustomer |
顧客がコピーを受け取るかどうかを制御します |
$TextToCustomer |
顧客へのメッセージ用のテキスト |
$FormArchive |
フォームのアーカイブを制御します |
$FormID |
対象となるフォームのID |
$SendTo |
フォームのメールの受取人 |
MailCache
BlueSMTPMail()を呼び出すたびに、データベーステーブルに追加のエントリが生成されます:
00_MailCache
このテーブルを使用してメール送信のステータスを確認できます。
ここでは、メールが正常に処理されたか、送信されたかを確認できます。
MailCacheエントリは以下のために使用されます:
1 Woche
保存されます。
メール送信の典型的な流れ
PHP-Skript
↓
BlueSMTPMail()
↓
MailType prüfen
↓
MailAccount auswählen
↓
SMTPType prüfen
↓
SMTP-Konfiguration laden
↓
Empfänger bestimmen
↓
Text- und HTML-Inhalt erstellen
↓
Platzhalter ersetzen
↓
Anhänge hinzufügen
↓
Bilder gegebenenfalls einbetten
↓
E-Mail versenden
↓
00_MailCache aktualisieren
↓
optional 00_form speichern
BlueSMTPMailパラメータの概要
| 変数 | 意味 |
|---|---|
$MailType |
メールまたはニュースレター |
$MailAccount |
使用するメールアカウント |
$SMTPType |
内部または外部 |
$From |
送信者アドレス |
$To |
通常のメールの受取人 |
$NewsletterTo |
ニュースレター受取人、改行で区切る |
$Subject |
Eメールの件名 |
$TextContent |
Eメールのテキスト部分 |
$HTMLContent |
EメールのHTML部分 |
$Attachments |
添付ファイルのパス |
$EmbedImages |
画像をメールに直接埋め込む |
$MailPlaceholderReplacement |
メールの内容内のプレースホルダを置き換える |
$FormEntry |
00_formにオプションのエントリを作成する |
Zusammenfassung
bluetronix CMSの中央メールシステムは、独自のPHPコードから直接呼び出すことができます。
Für normalen E-Mail- und Newsletter-Versand wird verwendet:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
CMSフォームには次のオプションもあります:
Intern
→ Email → Accounts
または:
すべてのメール送信は次を通じて追加されます:
これにより、開発者は独自のPHPスクリプトから直接bluetronix CMSの既存のメールシステムを使用でき、完全なSMTPロジックを自分で実装する必要がなくなります。
中央のメールシステムはPHPにどのような機能を提供しますか?
通常のEメールとニュースレターにはBlueSMTPMail()を使用します。CMSフォームに関連して送信するには、追加でBlueFormSend()が用意されています。
内部メールアカウントはどこにありますか?
内部メールアカウントはEmail → Accountsで設定します。送信には$SMTPTypeをInternに設定します。差出人アドレスは設定されたアカウントに属する必要があります。
外部SMTPサーバーをどのように使用しますか?
アクセス情報をEmail → Server - Externに設定し、$SMTPType = "Extern";を使用します。差出人アドレスは選択した構成に合致する必要があります。
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
Die SMTP-Konfiguration kann entweder über:Intern → メール → アカウント
Extern
→ Email → Server - Extern
erfolgen.すべてのメール送信は、追加で以下から行われます:
00_MailCache
protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.これにより、開発者はブルートロニクスCMSの既存のメールシステムを独自のPHPスクリプトから直接使用でき、完全なSMTPロジックを自分で実装する必要がありません。
FAQ
お客様からよくある質問
中央メールシステムはPHPに対してどのような機能を提供していますか?
通常のEメールやニュースレターにはBlueSMTPMail()を使用します。CMSフォームとの関連での送信には追加でBlueFormSend()が利用可能です。
内部Eメールアカウントはどこにありますか?
内部メールアカウントはEmail → アカウントで設定します。送信には$SMTPTypeをInternに設定します。送信者アドレスは設定されたアカウントに属する必要があります。
外部SMTPサーバーはどう使うのですか?
Email → サーバー - 外部でアクセスデータを設定し、$SMTPType = "Extern";を使用します。送信者アドレスは選択した設定に適合する必要があります。
メールとニュースレターの違いは何ですか?
$MailType = "Mail";を使うと、$Toに指定された受信者に通常のEメールが送信されます。ニュースレターには$MailType = "Newsletter";を設定し、$NewsletterTo経由で受信者を渡します。
複数のニュースレター受信者をどう渡しますか?
アドレスを$NewsletterToに入力し、各メールアドレスを改行で区切ります。
テキストとHTMLを同じメールで送信できますか?
はい。通常のテキストは$TextContentに、フォーマットされたHTMLメッセージは$HTMLContentで渡します。
メールに添付ファイルを追加するにはどうすればよいですか?
$Attachmentsを通じてWebサイト内のファイルパスを指定します。複数の添付ファイルがある場合は、パスを改行で区切ります。
画像をメールに直接埋め込むにはどうすればよいですか?
テンプレートでは$EmbedImages = "ja";を使用します。これにより、HTMLメッセージ内で使用される画像が、説明したCMS機能に基づいて直接埋め込まれます。
MailPlaceholderReplacementは何に使われますか?
これにより、テキストおよびHTMLコンテンツ内のプレースホルダーを、名前や注文番号、個別のリンクなどの特定の値に置き換えることができます。テンプレートは検索と置換の原則を説明していますが、具体的な渡し方のフォーマットは示していません。
配送をフォームエントリとして追加でアーカイブするにはどうすればよいですか?
BlueSMTPMail()で$FormEntry = "JA";を設定します。テンプレートによれば、追加で00_formにエントリが保存されます。
配送状況はどこで確認できますか?
テンプレートは00_MailCacheテーブルを説明しています。そこに作成された配送エントリは1週間保存されます。処理エントリだけでは、受信者への配達の追加証明にはなりません。
BlueFormSend()はいつ使用しますか?
BlueFormSend()はCMSフォームを使用したEメールの送信に使用されます。パラメーターには、送信制御、件名、顧客コピー、フォームアーカイブ、フォームIDなどが含まれます。