سیستم ایمیل را از طریق 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 طراحی شده است. پارامترها شامل کنترل ارسال، موضوع، نسخه مشتری، بایگانی فرم و شناسه فرم است.