ການເຊື່ອມຕໍ່ IMAP SSL ສາມາດເດີນທາງຜ່ານ SOCKS ໃນຂະນະທີ່ຮັກສາເຊີບເວີເມລເປັນຄູ່ TLS ຂອງມັນ. ຈຸດເຊື່ອມໂຍງທີ່ເປັນປະໂຫຍດແມ່ນບ່ອນທີ່ລູກຄ້າສ້າງການຂົນສົ່ງຂອງຕົນ ກ່ອນການທັກທາຍ IMAP ປົກກະຕິ ແລະ ການຈັດການຄວາມສາມາດຈະເລີ່ມ.

ສຳລັບ CPython 3.14 ຂ້າງລຸ່ມນີ້ສະແດງອາດາປເຕີນ້ອຍໆທີ່ໃຊ້ PySocks. ມັນຂຽນທັບຕະຂໍການຂົນສົ່ງສ່ວນຕົວ ດັ່ງນັ້ນຈົ່ງຜູກມັນໄວ້ກັບສະບັບ imaplib ທີ່ກຳລັງບຳລຸງຮັກສາ:

import imaplib
import ssl
import socks

class SocksIMAP4SSL(imaplib.IMAP4_SSL):
    def _create_socket(self, timeout):
        stream = socks.create_connection(
            (self.host, self.port),
            timeout=timeout,
            proxy_type=socks.SOCKS5,
            proxy_addr="proxy.example",
            proxy_port=1080,
            proxy_rdns=True,
        )
        try:
            return self.ssl_context.wrap_socket(
                stream, server_hostname=self.host)
        except Exception:
            stream.close()
            raise

context = ssl.create_default_context()
with SocksIMAP4SSL("imap.example", ssl_context=context,
                  timeout=15) as mailbox:
    mailbox.noop()

ຊື່ ແລະ ພອດແມ່ນບ່ອນວ່າງສຳລັບພຣັອກຊີ ແລະ ບໍລິການ IMAP ທີ່ມີຢູ່ແລ້ວ. ສຳລັບປາຍທາງ IMAP ສາທາລະນະທີ່ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ພຣັອກຊີສາທາລະນະ ລາຍຊື່ພຣັອກຊີ SOCKS5 ສະເໜີຜູ້ສະໝັກ; ແຕ່ລະອັນຕ້ອງອະນຸຍາດໂຮສເມລ ແລະ ພອດທີ່ຕ້ອງການ. ການເພິ່ງພາ PySocks ໃຫ້ການເຈລະຈາ SOCKS; imaplib ຍັງເລີ່ມເຊສຊັນເມລ. ບໍ່ມີການປ່ຽນແທນ socket.socket ທົ່ວໂລກໃດໆທີ່ກ່ຽວຂ້ອງ.

ຮັກສາຕົວຕົນຂອງເຊີບເວີເມລ

ຊື່ໂຮສ TLS ຍັງຄົງເປັນ imap.example. ມັນບໍ່ແມ່ນຊື່ໂຮສ SOCKS. ການສົ່ງ ssl.create_default_context() ເປີດໃຊ້ການກວດສອບໃບຮັບຮອງ ແລະ ຊື່ໂຮສປົກກະຕິຢ່າງເຈດຕະນາ; ຊັອກເກັດທີ່ເຂົ້າລະຫັດແລ້ວຢ່າງດຽວບໍ່ພຽງພໍທີ່ຈະສ້າງການກວດສອບເຫຼົ່ານັ້ນ.

proxy_rdns=True ຂໍໃຫ້ ເສັ້ນທາງ SOCKS ຈັດການຊື່ໂຮສປາຍທາງ. ຖ້າພຣັອກຊີຕ້ອງການບັນຊີ ອາກູເມັນຂໍ້ມູນປະຈຳຕົວທີ່ຮອງຮັບເປັນຂອງການຕັ້ງຄ່າການຂົນສົ່ງນັ້ນ. ພວກມັນບໍ່ເຂົ້າສູ່ກ່ອງຈົດໝາຍ.

ປ່ອຍໃຫ້ imaplib ເລີ່ມເຊສຊັນ

ອາດາປເຕີສົ່ງກະແສ TLS ກັບຄືນໃຫ້ຕົວສ້າງປົກກະຕິ. ການຈັດຕັ້ງ open() ຄືນໃໝ່ຈາກຕົວຢ່າງເກົ່າອາດພາດພາລາມິເຕີເວລາ ການບັຟເຟີ ແລະ ຄວາມຄາດຫວັງການເລີ່ມຕົ້ນອື່ນໆ. ໃນ CPython 3.14 ແມ່ນແຕ່ການເຂົ້າເຖິງ file ແບບເກົ່າກໍ່ເປັນຄຸນສົມບັດຄວາມເຂົ້າກັນ ບໍ່ແມ່ນຟິນທີ່ຈະສ້າງຄືນຢ່າງເສລີ.

ເມື່ອອັບເກຣດຫ້ອງສະໝຸດ ຈົ່ງທົບທວນຕະຂໍສ່ວນຕົວນີ້ທຽບກັບແຫຼ່ງທີ່ກົງກັນ. ຖ້າການບຳລຸງຮັກສາຊັ້ນຍ່ອຍບໍ່ເໝາະສົມ ໃຫ້ເລືອກລູກຄ້າເມລທີ່ມີສ່ວນຕິດຕໍ່ການຂົນສົ່ງພຣັອກຊີທີ່ມີເອກະສານ. ການຈັດລຽງໃດໆຄວນຮັກສາການແຍກດຽວກັນ: ການເຊື່ອມຕໍ່ພຣັອກຊີ ການຢືນຢັນ TLS ຂອງປາຍທາງ ແລ້ວຈຶ່ງຢືນຢັນ IMAP.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ