SMTP проблем при получаване на мейл в Abv.bg

Ticketa

Registered
Привет,
използвам следната функция за изпращане на мейли към потребители в сайта, обаче когато потребителя е в abv.bg получава писмото като файл:
.unknown

$mail класа е => https://github.com/PHPMailer/PHPMailer

Код:
function PT_SendMessage($data = array()) {
    global $pt, $db, $mail;
    $email_from      = $data['from_email'] = PT_Secure($data['from_email']);
    $to_email        = $data['to_email'] = PT_Secure($data['to_email']);
    $subject         = $data['subject'];
    $data['charSet'] = $data['charSet'];

    try {
        if (!empty($data["return"]) && $data["return"] == 'debug') {
            $mail->SMTPDebug = 2;
        }

        if ($pt->config->smtp_or_mail == 'mail') {
            $mail->IsMail();
        }

        else if ($pt->config->smtp_or_mail == 'smtp') {
            $mail->isSMTP();
            $mail->Host        = $pt->config->smtp_host;
            $mail->SMTPAuth    = true;
            $mail->Username    = $pt->config->smtp_username;
            $mail->Password    = openssl_decrypt($pt->config->smtp_password, "AES-128-ECB", 'mysecretkey1234');
            $mail->SMTPSecure  = $pt->config->smtp_encryption;
            $mail->Port        = $pt->config->smtp_port;
            $mail->SMTPOptions = array(
                'ssl' => array(
                    'verify_peer' => false,
                    'verify_peer_name' => false,
                    'allow_self_signed' => true
                )
            );
        }

        else {
            return false;
        }

        $mail->IsHTML(true);
        $mail->setFrom(strip_tags($data['from_email'], $data['from_name']));
        $mail->addAddress($data['to_email'], $data['to_name']);
        $mail->Subject = $data['subject'];
        $mail->CharSet = "text/html; charset=UTF-8;";
        $mail->Body = $data['message_body'];
        if ($mail->send()) {
            $mail->clearAddresses();
            $mail->clearCCs();
            $mail->clearBCCs();
            return true;
        }
        else{
            if (!empty($data["return"])) {
                return $mail->ErrorInfo;
            }
        }
       
    } catch (Exception $e) {
        if (!empty($data["return"])) {
            if (!empty($e->getMessage())) {
                return $e->getMessage();
            }
            return $mail->ErrorInfo;
        }
        return false;
    } catch (phpmailerException $e) {
        if (!empty($data["return"])) {
            if (!empty($e->errorMessage())) {
                return $e->errorMessage();
            }
            return $mail->ErrorInfo;
        }
        return false;
    }
    return false;
}
 
abv.bg винаги са били на дъното на всички мейл услуги. Виж какво ще ти каже към gmail. Иначе те се оправдават с вкарването на допълнителни филтри и листи, които се чекват преди влизането на мейл в пощите им. Виж дали не търся някоя допълнителна от стандартните проверки. Това, ако всичко е ОК при кода за изпращане.
 
Никакви ядове нямам към gmail, точно за това се озадачих
Защо те озадачава. АБВ са греда пълна. Виж дали не може да пратиш нещо, което да ти върне респонс от техните сървъри. Имал съм случаи на клиенти от чужбина с техни мейли от домейни въобще не влизат, иначе всички се наядохме на виагри в тази поща. :) Аз за това като чуя спам филтър и абв ме избива смях. Иначе да, ползват NOD32 за скенинг на атачмънтите, мисля, че още са с него. Ще поровя тия дни имах наскоро кейс, но беше заради един хедър, който си го търсиха от АБВ, но това с .unknown ми е много неясно дори какво би могло да бъде.
 
 
Вариант А е да тестваш без в charset-а да подаваш, че подаваш „text/html;“ или вторият вариант е да премахнеш <html></html> таговете от съдържанието. Както казаха колегите, abv е мел клиент без адекватен съпорт и филтри. Болно ми е, че такава известна за региона платформа е в такова положение. Ако бе правилно развита и подсигурена, нещата щяха да са доста по-различни.
 
Вариант А е да тестваш без в charset-а да подаваш, че подаваш „text/html;“ или вторият вариант е да премахнеш <html></html> таговете от съдържанието. Както казаха колегите, abv е мел клиент без адекватен съпорт и филтри. Болно ми е, че такава известна за региона платформа е в такова положение. Ако бе правилно развита и подсигурена, нещата щяха да са доста по-различни.
Масово е. Няма почти човек, който да не съм се опитал да убедя да си смени пощата. Имаш yahoo, gmail, hotmail, къде се набутваш с abv или mail.bg. И това при положение, че не поглеждаме към други пощи като mail.ru, iCloud, AOL, Zoho, Proton. А най ми е болно да видя фирмена кола с уебсайт, адрес, телефон и мейл контакта да им е abv.bg. Както и да е. Няма начин нашите локални пощи да стъпят на нивото на световните, още по-малко когато се случва да изпитаме някакви проблеми с тях да има някакво адекватно разбиране както от техния съпорт, така да знаеш какво да правиш.

За твоя казус, не знам дали е нужно да разгледаш някоя система как праща. Нещо в бодито и хедъра да е нужно да се пипне. Инсталирай си един....да речем Opencart и му дай да праща през SMTP, като разгледаш добре шаблона. Не е гаранция, че ще се получи по-добре, но определено ако пропускаш нещо, ще го видиш.
 
Да, ето ти днес казус. Всички DNS-и на един домейн са се обновили навсякъде, всички виждат новите, само сървърите на ABV не. И реално мейлите не идват. Хората не могат да си обяснят ситуацията, защото получават от всякакви места като домейн пощи, gmail, yahoo, ама нашите родни бъгави пощи - не. Та за какво да си говорим. Според мен трябва да има някаква масова кампания, в която да се облъчат хората да започнат да ползват адекватни услуги. АБВ нормалните хора го ползват за регистрации по някакви сайтове, които не съм им важни и не държат да този вид кореспонденция от там. За жалост още са фактор и проблемите са си на лице.
 
Опитай да добавиш и alt body, което е само текстов формат. Не се знае какво ги трипва абв-то.

Между другото, както си разположил catch блоковете, изключението на phpmailer никога няма да се извика. Ако искаш да хващаш каквито и да е изключения, винаги слагай Exception накрая на веригата, защото catch-овете се изпълняват последователно и Exception винаги ще хваща всичко.

 

Back
Горе