Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Swift 4.0.3 - wyłączenie sprawdzania poprawności adresu email
Forum PHP.pl > Forum > Gotowe rozwiązania
AxZx
witam,

od niedawna dostępna jest nowa wersja biblioteki Swift 4.0.3
mam problem z wysyłaniem maili, gdy adres jest niepoprawny. maile wysyłam masowo za pomocą metody batchSend (klasa Swift_Mailer).

czy ktoś wie czy istnieje możliwość wyłączenia sprawdzania poprawności adresu email? albo chociaż ignorowania błędnego adresu? teraz zgłaszany jest wyjątek i przerywane jest działanie aplikacji gdy mail nie spełnia norm.
Patrząc w kod nie widzę, żeby była możliwość wyłączenia tego sprawdzania.

Dodawane adresy są przekazywane do metody
  1. <?php
  2. protected function normalizeMailboxes(array $mailboxes)
  3.  {
  4.    $actualMailboxes = array();
  5.    
  6.    foreach ($mailboxes as $key => $value)
  7.    {
  8.      if (is_string($key)) //key is email addr
  9.      {
  10.        $address = $key;
  11.        $name = $value;
  12.      }
  13.      else
  14.      {
  15.        $address = $value;
  16.        $name = null;
  17.      }
  18.      $this->_assertValidAddress($address);
  19.      $actualMailboxes[$address] = $name;
  20.    }
  21.    
  22.    return $actualMailboxes;
  23.  }
  24. ?>

i każdy adres sprawdzany jest przez
  1. <?php
  2. private function _assertValidAddress($address)
  3.  {
  4.    if (!preg_match('/^' . $this->getGrammar('addr-spec') . '$/D',
  5.      $address))
  6.    {
  7.      throw new Swift_RfcComplianceException(
  8.        'Address in mailbox given [' . $address .
  9.        '] does not comply with RFC 2822, 3.6.2.'
  10.        );
  11.    }
  12.  }
  13. ?>


jeżeli ktoś ma jakiś pomysł jak rozwiązać ten problem bardzo proszę o pomoc.
pozdrawiam
destroyerr
Rozszerzyć klasę MailboxHeader i nadpisać metodę initializeGrammar, tak aby dla addr-spec wyrażenie regularne przepuszczało Twoje niepoprawne adresy.
Pytanie tylko po co wysyłać maila, skoro wiadomo, że adres jest zły.
AxZx
Cytat(destroyerr @ 26.07.2009, 23:07:50 ) *
Rozszerzyć klasę MailboxHeader i nadpisać metodę initializeGrammar, tak aby dla addr-spec wyrażenie regularne przepuszczało Twoje niepoprawne adresy.
Pytanie tylko po co wysyłać maila, skoro wiadomo, że adres jest zły.


no właśnie, po co?smile.gif
czyli może lepiej nadpisać metodę normalizeMailboxes i nie wkładać złego adresu do tablicy maili?
te adresy email znalazły się w bazie po walidacji, która jest w symfony - tam jest jedno dość krótkie wyrażenie regularne, podczas gdy w swift jest kilkadziesiąt linijek.
zastanawiam się jak to ugryźć, czy wyłączyć to sprawdzanie, które jest w swift czy jeszcze raz sprawdzać adres zanim przekaże go do swift.


Cytat(destroyerr @ 26.07.2009, 23:07:50 ) *
Pytanie tylko po co wysyłać maila, skoro wiadomo, że adres jest zły.


sprawdziłem te niby złe maile. wg Swifta te adresy są złe, a jednak mail normalnie jest wysyłany i nie ma żadnych zwrotów - użytkownik dostał wysłany list.
także chyba lepiej ominąć to sprawdzanie. tylko pytanie - czy jest taka możliwość?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.