Uruchom system mailowy przez PHP
W tym samouczku poznasz parametry funkcji BlueSMTPMail() i BlueFormSend(), skonfigurujesz wewnętrzny lub zewnętrzny sposób wysyłki, a także dowiesz się, jak traktować załączniki, treści HTML i dzienniki wysyłki.
Cel samouczka
Uwagi: Ten poradnik jest skierowany do programistów i pokazuje, jak wbudowany system pocztowy bluetronix CMS może być bezpośrednio wywoływany z poziomu PHP.
System CMS bluetronix udostępnia centralne funkcje PHP do wysyłania e-maili.
Dzięki temu nie trzeba na nowo programować połączeń SMTP, kont pocztowych i podstawowych funkcji wysyłki dla każdego skryptu PHP.
Dla bezpośredniego wysyłania e-maili i newsletterów dostępna jest następująca funkcja:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Dodatkowo dostępna jest następująca funkcja do wysyłania formularzy e-mail:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
BlueSMTPMail()
Za pomocą BlueSMTPMail() można wysyłać zwykłe e-maile i newslettery przez centralny system pocztowy CMS bluetronix.
Wywołanie funkcji wygląda następująco:
BlueSMTPMail(
$MailType,
$MailAccount,
$SMTPType,
$From,
$To,
$NewsletterTo,
$Subject,
$TextContent,
$HTMLContent,
$Attachments,
$EmbedImages,
$MailPlaceholderReplacement,
$FormEntry
);
$MailType
Określa, jaki rodzaj e-maila ma zostać wysłany.
Możliwe wartości:
Mail
Newsletter
Przykład:
$MailType = "Mail";
lub:
$MailType = "Newsletter";
$MailAccount
$MailAccount określa konto e-mail, którego ustawienia SMTP mają być użyte.
Na podstawie tej wartości ładowane są odpowiednie dane konfiguracyjne SMTP z tabel bazy danych CMS.
Jakie ustawienia są używane, zależy również od $SMTPType.
$SMTPType
Określa, czy używane będzie wewnętrzne, czy zewnętrzne konto e-mail.
Możliwe wartości:
Intern
Extern
Wewnętrzne
Przy:
$SMTPType = "Intern";
używane jest konto e-mail, które zostało bezpośrednio utworzone w CMS bluetronix.
Kontakty znajdują się pod:
Email → Accounts
Adres nadawcy użyty w $From musi być tam dostępny jako konto.
Zewnętrzne
Przy:
$SMTPType = "Extern";
używane są zewnętrzne dane dostępowe SMTP.
Są one zarządzane w CMS pod:
Email → Server - Extern
Dzięki temu.
Adres nadawcy użyty w $From musi być tam odpowiednio skonfigurowany.
$From
Zawiera adres e-mail nadawcy.
Przykład:
$From = "info@example.com";
Adres e-mail musi pasować do wybranej konfiguracji SMTP.
$To
Zawiera adres e-mail odbiorcy zwykłej poczty.
Przykład:
$To = "customer@example.com";
W przypadku wysyłki zwykłej poczty ta zmienna jest używana jako odbiorca.
$NewsletterTo
$NewsletterTo jest używane podczas wysyłania newslettera.
Zmienna zawiera wiele adresów e-mail w postaci tekstu. Każdy adres e-mail jest oddzielony nową linią.
Przykład:
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject
Zawiera temat wiadomości e-mail.
Przykład:
$Subject = "Welcome to our website";
$TextContent
Zawiera czystą treść wiadomości e-mail.
Ta część może być używana na przykład przez programy e-mailowe, które nie wyświetlają HTML.
Przykład:
$TextContent = "Thank you for your request.";
$HTMLContent
Zawiera część HTML wiadomości e-mail.
Przykład:
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
Dzięki temu można wysyłać sformatowane e-maile z nagłówkami, tekstami, linkami, obrazkami i innymi elementami HTML.
$Attachments
Dzięki $Attachments można dołączyć pliki do wiadomości e-mail.
Pliki są wskazywane za pomocą ich ścieżki w obrębie strony internetowej.
Przykład:
$Attachments = "/bx_doc/Intro.pdf";
W przypadku wielu załączników poszczególne ścieżki plików są oddzielone nową linią.
Przykład:
$Attachments = "/bx_doc/Intro.pdf\n/bx_doc/PriceList.pdf";
$EmbedImages
Dzięki $EmbedImages można określić, czy obrazy powinny być osadzone bezpośrednio w wiadomości e-mail.
Przykład:
$EmbedImages = "ja";
Przy włączonej opcji obrazy używane w wiadomości HTML są zintegrowane bezpośrednio w e-mailu, a nie ładowane wyłącznie z zewnętrznych adresów URL.
Dzięki temu obrazy mogą być dostępne dla odbiorcy bezpośrednio w e-mailu, bez potrzeby wcześniejszego ładowania ich z serwera.
$MailPlaceholderReplacement
Dzięki $MailPlaceholderReplacement można zastąpić placeholdery w:
$TextContent
$HTMLContent
indywidualnie przypisanymi wartościami.
Zasada jest następująca:
Search
↓
Replace
Dzięki temu można na przykład generować spersonalizowane treści w wiadomości e-mail.
Typowe zastosowania to:
- Name des Empfängers
- Kundennummer
- Bestellnummer
- individuelle Links
- weitere dynamische Inhalte
$FormEntry
Dzięki $FormEntry można określić, czy wysyłka powinna być dodatkowo zapisana w archiwum formularzy.
Przy:
$FormEntry = "JA";
dodatkowo zostanie utworzony wpis w tabeli bazy danych:
00_form
zapisano.
Dzięki temu wysyłka może być jednocześnie udokumentowana jako wpis w formularzu lub archiwum.
Przykład: Wysyłanie zwykłej wiadomości e-mail
Poniższy przykład wysyła standardowy e-mail HTML i tekstowy za pośrednictwem wewnętrznego konta e-mail.
$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);
Proces wygląda uproszczony tak:
PHP
↓
BlueSMTPMail()
↓
internen Mail-Account laden
↓
SMTP-Verbindung verwenden
↓
E-Mail erzeugen
↓
E-Mail versenden
↓
MailCache-Eintrag erzeugen
Przykład: Wysyłanie newslettera
Dla newslettera ustawiamy $MailType na:
Newsletter
ustawione.
Odbiorcy są następnie przekazywani za pomocą $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);
Poszczególni odbiorcy newslettera są oddzieleni w $NewsletterTo za pomocą łamańca linii.
Używanie zewnętrznego połączenia SMTP
Jeśli ma być używany zewnętrzny serwer pocztowy, należy:
$SMTPType = "Extern";
ustawione.
Dane dostępowe SMTP muszą być wcześniej skonfigurowane pod:
Email → Server - Extern
muszą być skonfigurowane.
Przykład:
$SMTPType = "Extern";
$From = "mail@external-domain.com";
$MailAccount = "mail@external-domain.com";
BlueFormSend()
Oprócz bezpośredniego wysyłania e-maili, dostępna jest funkcja:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
której celem jest.
Ta funkcja jest przeznaczona specjalnie do wysyłania e-maili w połączeniu z formularzami CMS.
Zmienne są już całkowicie zapisane w angielskiej pisowni.
Parametry funkcji BlueFormSend()
| Zmienne | Zastosowanie |
|---|---|
$SMTPType |
Wybierz wewnętrzne lub zewnętrzne wysyłanie SMTP |
$SendMail |
Steruje wysyłką maili formularza |
$SendSubject |
Temat e-maila formularza |
$CopyToCustomer |
Steruje, czy klient otrzymuje kopię |
$TextDoKlienta |
Tekst wiadomości do klienta |
$FormArchive |
Zarządza archiwizacją formularza |
$FormID |
ID odpowiedniego formularza |
$SendTo |
Odbiorca wiadomości e-mail z formularza |
MailCache
Każde wywołanie BlueSMTPMail() tworzy dodatkowy wpis w tabeli bazy danych:
00_MailCache
Za pomocą tej tabeli można kontrolować status wysyłki wiadomości.
Można tam sprawdzić, czy wiadomość e-mail została pomyślnie przetworzona lub wysłana.
Wpisy MailCache służą do:
1 Woche
zapisano.
Typowy przebieg procesu wysyłania wiadomości e-mail
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
Przegląd parametrów BlueSMTPMail
| Zmienne | Znaczenie |
|---|---|
$MailType |
Wiadomość e-mail lub newsletter |
$MailAccount |
Konto e-mail do wykorzystania |
$SMTPType |
Wewnętrzne lub zewnętrzne |
$From |
Adres nadawcy |
$To |
Odbiorca zwykłej wiadomości e-mail |
$NewsletterTo |
Odbiorcy newslettera, oddzieleni znacznikami nowej linii |
$Temat |
Temat wiadomości e-mail |
$TextContent |
Część tekstowa wiadomości e-mail |
$HTMLContent |
Część HTML wiadomości e-mail |
$Attachments |
Ścieżki plików załączników |
$EmbedImages |
Integruj obrazy bezpośrednio w wiadomości e-mail |
$MailPlaceholderReplacement |
Zastępuj placeholdery w treści wiadomości |
$FormEntry |
Twórz opcjonalny wpis w 00_form |
Zusammenfassung
Centralny system e-mailowy CMS bluetronix może być bezpośrednio wywoływany z własnego kodu 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);
Dla formularzy CMS dostępne jest dodatkowo:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
Die SMTP-Konfiguration kann entweder über:
Intern
→ Email → Accounts
lub:
Extern
→ Email → Server - Extern
erfolgen.
Każde wysłanie wiadomości e-mail jest dodatkowo rejestrowane przez:
00_MailCache
protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.
Dzięki temu programiści mogą bezpośrednio korzystać z istniejącego systemu e-mailowego CMS bluetronix w swoich skryptach PHP, bez konieczności samodzielnej implementacji całej logiki SMTP.
FAQ
co klienci często nas pytają
Jakie funkcje udostępnia centralny system e-mailowy dla PHP?
Do zwykłych wiadomości e-mail i newsletterów używasz BlueSMTPMail(). Dla wysyłki w połączeniu z formularzami CMS dostępne jest również BlueFormSend().
Gdzie znajdę wewnętrzne konta e-mail?
Wewnętrzne konta e-mailowe są konfigurowane w Email → Accounts. Do ich wysyłki ustawiasz $SMTPType na Intern. Adres nadawcy musi należeć do skonfigurowanego konta.
Jak używać zewnętrznego serwera SMTP?
Skonfiguruj dane logowania w Email → Server - Extern i użyj $SMTPType = "Extern";. Adres nadawcy musi odpowiadać wybranej konfiguracji.
Jaka jest różnica między e-mailem a newsletterem?
Za pomocą $MailType = "Mail"; wysyłana jest zwykła wiadomość e-mail, a odbiorca jest zapisany w $To. Dla newslettera ustawiasz $MailType = "Newsletter"; i przekazujesz odbiorców przez $NewsletterTo.
Jak mogę przekazać wielu odbiorców newslettera?
Wpisz adresy w $NewsletterTo i oddziel każdy adres e-mail nową linią.
Czy mogę wysłać tekst i HTML w tej samej wiadomości e-mail?
Tak. Czysty tekst znajduje się w $TextContent, podczas gdy sformatowaną wiadomość HTML przekazujesz przez $HTMLContent.
Jak dodać załączniki do wiadomości e-mail?
Za pomocą $Attachments przekazujesz ścieżki do plików w obrębie strony internetowej. W przypadku wielu załączników ścieżki są oddzielane nowymi liniami.
Jak mogę osadzić obrazy bezpośrednio w wiadomości e-mail?
Szablon używa w tym celu $EmbedImages = "tak";. Dzięki temu obrazy używane w wiadomości HTML są osadzane bezpośrednio zgodnie z opisaną funkcją CMS.
Do czego służy MailPlaceholderReplacement?
Umożliwia to zastępowanie miejsc w treści tekstowej i HTML indywidualnymi wartościami, na przykład dla imion, numerów zamówień lub osobistych linków. Szablon opisuje zasadę wyszukiwania i zastępowania, ale nie podaje konkretnego formatu przekazywania.
Jak archiwizować wysyłki jako wpis formularza?
Ustaw w BlueSMTPMail() wartość $FormEntry = "TAK";. Zgodnie z szablonem zostanie dodatkowo zapisany wpis w 00_form.
Gdzie mogę sprawdzić status wysyłki?
Szablon opisuje tabelę 00_MailCache do tego celu. Wprowadzone tam wpisy wysyłki są przechowywane przez tydzień. Wpis przeprocessowania sam w sobie nie stanowi dodatkowego dowodu dostarczenia do odbiorcy.
Kiedy używam BlueFormSend()?
BlueFormSend() jest przeznaczone do wysyłania e-maili z formularzami CMS. Parametry obejmują między innymi kontrolę wysyłki, temat, kopię dla klienta, archiwum formularzy i identyfikator formularza.