حالا اپلیکیشن را دانلود کنید و ۱۰ روز رایگان امتحان کنید
واحد پول انتخاب زبان انتخاب منطقه

سیستم ایمیل را از طریق PHP فراخوانی کنید

در این آموزش، شما پارامترهای BlueSMTPMail() و BlueFormSend() را خواهید آموخت، ارسال داخلی یا خارجی را تنظیم می‌کنید و یاد می‌گیرید که چگونه ضمیمه‌ها، محتوای HTML و پروتکل‌های ارسال مدیریت شوند.

هدف این آموزش

توجه: این آموزش مخصوص توسعه دهندگان است و نشان می‌دهد که چگونه می‌توان سیستم ایمیل یکپارچه cms بلوترونیکس را مستقیماً از طریق PHP فراخوانی کرد.

سیستم مدیریت محتوای بلوترونیکس توابع PHP مرکزی برای ارسال ایمیل ارائه می‌دهد.

بنابراین، اتصال‌های SMTP، حساب‌های ایمیل و توابع پایه‌ای ارسال نیازی به برنامه‌نویسی دوباره برای هر اسکریپت PHP نخواهند داشت.

برای ارسال مستقیم ایمیل و خبرنامه، تابع زیر در دسترس است:

BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);

برای ارسال ایمیل‌های فرم، تابع اضافی زیر در دسترس است:

BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);

BlueSMTPMail()

با BlueSMTPMail() می‌توان ایمیل‌های عادی و خبرنامه‌ها را از طریق سیستم ایمیل مرکزی cms بلوترونیکس ارسال کرد.

فراخوانی تابع به صورت زیر است:

BlueSMTPMail(
   $MailType,
   $MailAccount,
   $SMTPType,
   $From,
   $To,
   $NewsletterTo,
   $Subject,
   $TextContent,
   $HTMLContent,
   $Attachments,
   $EmbedImages,
   $MailPlaceholderReplacement,
   $FormEntry
);

$MailType

تعیین می‌کند که چه نوع ایمیلی باید ارسال شود.

مقدارهای ممکن:

Mail
Newsletter

مثال:

$MailType = "Mail";

یا:

$MailType = "Newsletter";

$MailAccount

$MailAccount حساب ایمیلی را تعیین می‌کند که تنظیمات SMTP آن استفاده خواهد شد.

از این مقدار، داده‌های پیکربندی SMTP مربوطه از جداول پایگاه داده cms بارگذاری می‌شوند.

نوع پیکربندی که استفاده می‌شود، به $SMTPType نیز بستگی دارد.

$SMTPType

تعیین می‌کند که آیا از یک حساب ایمیل داخلی یا خارجی استفاده می‌شود.

مقدارهای ممکن:

Intern
Extern

داخلی

در:

$SMTPType = "Intern";

یک حساب ایمیل استفاده می‌شود که مستقیماً در cms بلوترونیکس تنظیم شده است.

این حساب‌ها در زیر قرار دارند:

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 شناسه فرم مورد نظر
$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 موضوع ایمیل
$TextContent قسمت متن ایمیل
$HTMLContent قسمت HTML ایمیل
$Attachments مسیرهای فایل پیوست‌ها
$EmbedImages بسته‌بندی تصاویر به‌طور مستقیم در ایمیل
$MailPlaceholderReplacement جایگزینی متغیرها در محتوای ایمیل
$FormEntry ایجاد ورودی اختیاری در 00_form

Zusammenfassung

سیستم مرکزی ایمیل بلوترونیکس 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 همچنین در دسترس است:

BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);

Die SMTP-Konfiguration kann entweder über:

Intern
→ Email → Accounts

یا:

Extern
→ Email → Server - Extern

erfolgen.

هر ارسال ایمیل همچنین از طریق:

00_MailCache

protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.

این امکان را به توسعه‌دهندگان می‌دهد تا از سیستم ایمیل موجود بلوترونیکس CMS مستقیماً از اسکریپت‌های PHP خود استفاده کنند، بدون اینکه نیاز به پیاده‌سازی کامل منطق SMTP داشته باشند.

سوالات متداول

چه سوالاتی را مشتریان معمولاً از ما می‌پرسند

چه عملکردهایی سیستم ایمیل مرکزی برای PHP فراهم می‌کند؟

برای ایمیل‌های عادی و خبرنامه‌ها از BlueSMTPMail() استفاده می‌کنی. برای ارسال در ارتباط با فرم‌های CMS همچنین BlueFormSend() در دسترس است.

کجا می‌توانم حساب‌های ایمیل داخلی را پیدا کنم؟

حساب‌های ایمیل داخلی در Email → Accounts تنظیم می‌شوند. برای ارسال آنها، $SMTPType را روی Intern تنظیم کن. آدرس فرستنده باید به یک حساب تنظیم‌شده تعلق داشته باشد.

چگونه از یک سرور SMTP خارجی استفاده کنم؟

جزئیات دسترسی را در Email → Server - Extern تنظیم کن و از $SMTPType = "Extern"; استفاده کن. آدرس فرستنده باید با پیکربندی انتخاب‌شده مطابقت داشته باشد.

تفاوت بین ایمیل و خبرنامه چیست؟

با $MailType = "Mail"; یک ایمیل معمولی ارسال می‌شود که گیرنده آن در $To قرار دارد. برای یک خبرنامه، $MailType = "Newsletter"; را تنظیم کرده و گیرندگان را از طریق $NewsletterTo منتقل می‌کنی.

چگونه می‌توانم چندین گیرنده خبرنامه را ارسال کنم؟

آدرس‌ها را در $NewsletterTo وارد کن و هر آدرس ایمیل را با یک خط جدید جدا کن.

آیا می‌توانم متن و HTML را در یک ایمیل ارسال کنم؟

بله. متن خالص در $TextContent قرار می‌گیرد در حالی که پیام HTML قالب‌بندی شده را از طریق $HTMLContent منتقل می‌کنی.

چگونه می‌توانم ضمائم را به یک ایمیل اضافه کنم؟

از طریق $Attachments مسیرهای فایل را درون وب‌سایت منتقل می‌کنی. در صورت وجود چندین ضمیمه، مسیرها با_break خط جدا می‌شوند.

چگونه می‌توانم تصاویر را مستقیم در یک ایمیل تعبیه کنم؟

قالب برای این کار از $EmbedImages = "ja"; استفاده می‌کند. به این ترتیب، تصاویری که در داخل پیام HTML استفاده می‌شوند، به طور مستقیم بر اساس تابع CMS توصیف‌شده تعبیه می‌شوند.

از MailPlaceholderReplacement برای چه استفاده می‌شود؟

با این امکان می‌توانی علامت‌گذاری‌ها را در محتوای متن و HTML با مقادیر سفارشی جایگزین کنی، مثلاً برای نام‌ها، شماره سفارش‌ها یا لینک‌های شخصی. قالب اصول جستجو و جایگزینی را توضیح می‌دهد، اما فرمت انتقال خاصی را مشخص نمی‌کند.

چگونه می‌توانم ارسال را به عنوان یک ورودی فرم بایگانی کنم؟

در BlueSMTPMail() مقدار $FormEntry = "JA"; را تنظیم کن. طبق قالب، همچنین یک ورودی در 00_form ذخیره می‌شود.

کجا می‌توانم وضعیت ارسال را بررسی کنم؟

قالب برای این منظور جدول 00_MailCache را توصیف می‌کند. ورودی‌های ارسال ایجاد شده در آنجا به مدت یک هفته ذخیره می‌شوند. یک ورودی پردازش به تنهایی نشان‌داده‌شدهی برای تحویل به گیرنده نیست.

کی از BlueFormSend() استفاده کنم؟

BlueFormSend() برای ارسال ایمیل با فرم‌های CMS طراحی شده است. پارامترها شامل کنترل ارسال، موضوع، نسخه مشتری، بایگانی فرم و شناسه فرم است.

CMS