Magento – Không có email xác nhận đến địa chỉ email xác định hoặc. phần mở rộng tên miền

Đối với một dự án B2E, chúng tôi cần một đường cho một cửa hàng 1.9.X Magento để xác định, mà mail cho một tên miền cụ thể (z.B. @ keinemails.com) Không nên gửi.

Kể từ khi chúng tôi SMTP-Pro-mở rộng có của ASchroder trong sử dụng, được nó để thích ứng này gần, để có được những kết quả mong muốn.

Trong bước đầu tiên chúng ta hãy ứng dụng / code / local / Aschroder / SMTPPro / mẫu / Email / template.php

Ở đây chúng ta thêm trước

/**
* Gửi mail đến người nhận

và đằng sau

lớp Aschroder_SMTPPro_Model_Email_Template kéo dài Mage_Core_Model_Email_Template
{

sau một mã

	bảo vệ $ _avoidedDomains = array('Keinemails.com', 'Auchkeinemails.com');

	bảo vệ chức năng isPreventForDomain($e-mail, $lĩnh vực) {
	    cho mỗi ($lĩnh vực như $ miền) {
	        $pos = strpos($e-mail, $miền, strlen($e-mail) - strlen($miền));

	        nếu ($pos === sai)
	            tiếp tục;

	        nếu ($pos == 0 || $e-mail[(int) $pos - 1] == "@" || $e-mail[(int) $pos - 1] == ".")
	            trở thành sự thật;
	    }

	    trả về false;
	}

hơn nữa đằng sau

public function gửi($e-mail, $tên = null, mảng $ biến = array())
{

và trước

$_helper = Mage::người giúp việc('Smtppro');

mã này

        $email = array_values((mảng)$e-mail);
        $= SentEmails mảng();

cuối cùng bởi

$_helper = Mage::người giúp việc('Smtppro');

nhưng mã này

        cho mỗi($email như $ emailValue){
        	nếu($điều này->isPreventForDomain($giá trị email, $điều này->_avoidedDomains)){
	        	pháp sư::đăng nhập(sprintf("Chúng tôi không gửi email đến% s", $giá trị email), sai, 'Not_sent_email.log', thật);
	        	tiếp tục;
	        }
	        $sentEmails[] = Giá trị Email $;
        }
        nếu(đếm($sentEmails) == 0) trả về false;

        $email = $ sentEmails;

Vì thế, rằng tất cả chúng ta cùng nhau có những điều sau đây

lớp Aschroder_SMTPPro_Model_Email_Template kéo dài Mage_Core_Model_Email_Template
{

	bảo vệ $ _avoidedDomains = array('Keinemails.com', 'Auchkeinemails.com');

	bảo vệ chức năng isPreventForDomain($e-mail, $lĩnh vực) {
	    cho mỗi ($lĩnh vực như $ miền) {
	        $pos = strpos($e-mail, $miền, strlen($e-mail) - strlen($miền));

	        nếu ($pos === sai)
	            tiếp tục;

	        nếu ($pos == 0 || $e-mail[(int) $pos - 1] == "@" || $e-mail[(int) $pos - 1] == ".")
	            trở thành sự thật;
	    }

	    trả về false;
	}

    /**
     * Gửi mail đến người nhận
     *
     * mảng @ param|string $ email E-mail(S)
     * mảng @ param|chuỗi|rỗng $ name tên người nhận(S)
     * mảng @ param biến $ biến mẫu
     * boolean @return
     **/
    public function gửi($e-mail, $tên = null, mảng $ biến = array())
    {
        $email = array_values((mảng)$e-mail);
        $= SentEmails mảng();
        $_helper = Mage::người giúp việc('Smtppro');
        cho mỗi($email như $ emailValue){
        	nếu($điều này->isPreventForDomain($giá trị email, $điều này->_avoidedDomains)){
	        	pháp sư::đăng nhập(sprintf("Chúng tôi không gửi email đến% s", $giá trị email), sai, 'Not_sent_email.log', thật);
	        	tiếp tục;
	        }
	        $sentEmails[] = Giá trị Email $;
        }
        nếu(đếm($sentEmails) == 0) trả về false;

        $email = $ sentEmails;
        
        // Nếu nó không được kích hoạt, chỉ trả lại kết quả mẹ.
        nếu (!$_người giúp đỡ->được kích hoạt()) {
            $_người giúp đỡ->đăng nhập('SMTP Pro không được kích hoạt, rơi trở lại tầng lớp phụ huynh);
            cha mẹ trở lại::gởi($e-mail, $Tên, $biến);
        }


        // Theo tầng lớp phụ huynh - ngoại trừ bổ sung trước và sau khi gửi các sự kiện

Trong trường hợp của chúng tôi, chúng tôi đã xác định hai lĩnh vực. lon Điều này tất nhiên chỉ là một.

Chúng tôi tạo ra theo cách này một log file (/var / log / not_sent_email.log) – Ở đây bạn có thể xem những mail đã bị từ chối khi.

Được sử dụng trong Magento Version 1.9 bình luận? bổ sung? Ghi chú? vui vẻ!

Xuất bản bởi sợi Dệt

từ 2009 Tôi đã làm việc chặt chẽ với Magento. Tôi bắt đầu với việc tạo ra và hoạt động của các cửa hàng B2C. Điều này đã được mở rộng thông qua công việc của tôi trong lĩnh vực logistics. Điều này dẫn đến hệ thống B2E đầu tiên chuyên. Hôm nay tôi làm việc ngày một ngày với B2C thú vị, B2B- và các dự án B2E và báo cáo trong blog này về những thách thức và đưa ra lời khuyên trong cuộc.

Để lại một trả lời

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *