Na jednej ze stron, którą się opiekuje (WordPress, bo tych mam „pod sobą” najwięcej) pojawiła się tymczasowa potrzeba przesyłania kopii (BCC/UDW, czyli ukrytej) wszystkich wysyłanych wiadomości e-mail na kontrolny adres. Zresztą sama przyczyna nie jest istotna, ważne jak można to w prosty sposób zrobić.

Kopia wszystkich widmowości e-mail na wybrany adres

Ten konkretny WordPress wysyła wszystkie wiadomości za pośrednictwem serwisu/usługi SparkPost, co jest realizowane przez ich formową wtyczkę, która niestety na obecną chwilę nie posiada takiej opcji. I choć można to obejść korzystając z szablonów lub wbudowanych haków, to lepszym rozwiązaniem (mniej pracy/nauki dla mnie) wydało mi się skorzystanie z filtra „wp_mail”, który jest dostępny bezpośrednio w WordPressie.

Pierwszy odruch, to kod jak najbardziej prosty – bo w końcu i zadanie przed nim niezbyt skomplikowane (dodajemy go do pliku functions.php lub tworzymy własną wtyczkę):

function webinsider_wp_mail( $mail ) {
 $mail['headers'] = 'BCC: jakiś@adres.email \r\n';
 return $mail;
}
add_filter( 'wp_mail', 'webinsider_wp_mail', 10, 1 );

Jest to rozwiązanie bardzo proste, ale skuteczne. Ma tylko jeden „malutki” problem – rozsypuje wiadomości wysyłane w HTMLu (te napisane w czystym tekście są wysyłane prawidłowo).

W takim razie postanowiłem trochę zmodyfikować powyższy kod, tak by również wiadomości napisane w HTMLu po modyfikacji nagłówka wyświetlały się poprawnie :

function webinsider_wp_mail( $mail ) {
 $bcc_address = sanitize_email( 'jakiś@adres.email' );
 $mail['headers'][] = 'BCC: ' . $bcc_address;
 return $mail;
}
add_filter( 'wp_mail', 'webinsider_wp_mail', 10, 1 );

I teoretycznie wszystko powinno być OK, ale… Nie zawsze, więc dla pewności warto kod rozbudować jeszcze o warunek związany z tabelą:

function webinsider_wp_mail( $mail ) {
 $bcc_address = sanitize_email( 'jakiś@adres.email' );

 if ( is_array( $mail['headers'] ) ) {
 $mail['headers'][] = 'BCC: ' . $bcc_address;
 } else {
 $mail['headers'] = $mail['headers'] . 'BCC: ' . $bcc_address . "\r\n";
 }

 return $mail;
}
add_filter( 'wp_mail', 'webinsider_wp_mail', 10, 1 );

Teoretycznie można by przyjąć, że zazwyczaj będzie nagłówków więcej, ale na wszelki wypadek – a na pewno nie zaszkodzi… ;-)

Oczywiście powyższy kod nie zadziała w sytuacji, gdy jakaś wtyczka/usługa na Waszej stronie korzysta z własnych ustawień związanych z wysyłką wiadomości e-mail (za pośrednictwem zewnętrznego serwera SMTP), pomijając standardową funkcję WordPressa. No i powyższy kod nie musi ograniczać się – tak jak w tym przypadku – do dodania nagłówka/adresu BCC – wszystko zależy od potrzeb.

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Monika ćwiczy przed kongresem ko..., ale dzięki motywowa Divi od Elegant Themes chyba nawet ona da radę...
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Janusz i Janusz skorzystali z promocji dla czytelników WebInsider.pl i zapłacili 80% mniej za księgowość internetową wFirma