当前位置: 首页>>代码示例>>Python>>正文


Python BytesGenerator.flatten方法代码示例

本文整理汇总了Python中email.generator.BytesGenerator.flatten方法的典型用法代码示例。如果您正苦于以下问题:Python BytesGenerator.flatten方法的具体用法?Python BytesGenerator.flatten怎么用?Python BytesGenerator.flatten使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在email.generator.BytesGenerator的用法示例。


在下文中一共展示了BytesGenerator.flatten方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_cte_type_7bit_transforms_8bit_cte

# 需要导入模块: from email.generator import BytesGenerator [as 别名]
# 或者: from email.generator.BytesGenerator import flatten [as 别名]
    def test_cte_type_7bit_transforms_8bit_cte(self):
        source = textwrap.dedent("""\
            From: [email protected]
            To: Dinsdale
            Subject: Nudge nudge, wink, wink
            Mime-Version: 1.0
            Content-Type: text/plain; charset="latin-1"
            Content-Transfer-Encoding: 8bit

            oh là là, know what I mean, know what I mean?
            """).encode('latin1')
        msg = message_from_bytes(source)
        expected =  textwrap.dedent("""\
            From: [email protected]
            To: Dinsdale
            Subject: Nudge nudge, wink, wink
            Mime-Version: 1.0
            Content-Type: text/plain; charset="iso-8859-1"
            Content-Transfer-Encoding: quoted-printable

            oh l=E0 l=E0, know what I mean, know what I mean?
            """).encode('ascii')
        s = io.BytesIO()
        g = BytesGenerator(s, policy=self.policy.clone(cte_type='7bit',
                                                       linesep='\n'))
        g.flatten(msg)
        self.assertEqual(s.getvalue(), expected)
开发者ID:10sr,项目名称:cpython,代码行数:29,代码来源:test_generator.py

示例2: createMessage

# 需要导入模块: from email.generator import BytesGenerator [as 别名]
# 或者: from email.generator.BytesGenerator import flatten [as 别名]
    def createMessage(self, entry=None):
        """ Creates a message representing a given feed entry. """

        logging.info("Creating message about: " + entry.title)
        msg = email.mime.multipart.MIMEMultipart('alternative')
        msg.set_charset(self.feed.encoding)
        author = self.title()
        try:
            author = entry.author + " @ " + author
        except AttributeError:
            pass
        msg['From'] = author
        msg['Subject'] = entry.title
        msg['To'] = config.username
        date = time.time()
        if hasattr(entry, 'updated_parsed') \
            and entry.updated_parsed is not None:
            date = entry.updated_parsed
        elif hasattr(entry, 'published_parsed') \
            and entry.published_parsed is not None:
            date = entry.published_parsed
        else:
            logging.warning('Entry without a date: ' + entry.title)
        if date is not None:
            msg['Date'] = email.utils.format_datetime(
                            datetime.datetime.fromtimestamp(
                                time.mktime(date)))
        headerName = 'X-Entry-Link'
        msg[headerName] = email.header.Header(s=entry.link,
                                              charset=self.feed.encoding)
        try:
            content = entry.content[0]['value']
        except AttributeError:
            try:
                content = entry.summary
            except AttributeError:
                content = entry.description
        html = content
        text = html2text.html2text(html)
        text = 'Retrieved from ' + entry.link + '\n' + text
        html = html + \
               '<p><a href="' + \
               entry.link + \
               '">Retrieved from ' + \
               entry.link + \
               '</a></p>'
        part1 = email.mime.text.MIMEText(text, 'plain')
        part2 = email.mime.text.MIMEText(html, 'html')
        msg.attach(part1)
        msg.attach(part2)

        bytesIO = BytesIO()
        bytesGenerator = BytesGenerator(bytesIO,
                                        mangle_from_=True,
                                        maxheaderlen=60)
        bytesGenerator.flatten(msg)
        text = bytesIO.getvalue()

        return text
开发者ID:Siggg,项目名称:yarss2imap,代码行数:61,代码来源:main.py

示例3: test_cte_type_7bit_handles_unknown_8bit

# 需要导入模块: from email.generator import BytesGenerator [as 别名]
# 或者: from email.generator.BytesGenerator import flatten [as 别名]
 def test_cte_type_7bit_handles_unknown_8bit(self):
     source = ("Subject: Maintenant je vous présente mon "
              "collègue\n\n").encode('utf-8')
     expected = ('Subject: Maintenant je vous =?unknown-8bit?q?'
                 'pr=C3=A9sente_mon_coll=C3=A8gue?=\n\n').encode('ascii')
     msg = message_from_bytes(source)
     s = io.BytesIO()
     g = BytesGenerator(s, policy=self.policy.clone(cte_type='7bit'))
     g.flatten(msg)
     self.assertEqual(s.getvalue(), expected)
开发者ID:10sr,项目名称:cpython,代码行数:12,代码来源:test_generator.py

示例4: mail_to_bytes

# 需要导入模块: from email.generator import BytesGenerator [as 别名]
# 或者: from email.generator.BytesGenerator import flatten [as 别名]
def mail_to_bytes(mail):
    """Get bytes based on a mail.

    Based on email.Message.as_bytes, but we reimplement it here because python
    3.3 lacks it.
    """
    fp = BytesIO()
    g = BytesGenerator(fp, mangle_from_=False, policy=mail.policy)
    g.flatten(mail, unixfrom=False)
    return fp.getvalue()
开发者ID:MetaNova,项目名称:journalwatch,代码行数:12,代码来源:journalwatch.py

示例5: write_message_to_file

# 需要导入模块: from email.generator import BytesGenerator [as 别名]
# 或者: from email.generator.BytesGenerator import flatten [as 别名]
def write_message_to_file(message, filename):
    """
    Write a message to the file with the
    given filename.
    """
    fp = open(os.path.join(args.dir, filename), "wb")
    try:
        generator = BytesGenerator(fp)
        generator.flatten(message, linesep="\r\n")
    finally:
        fp.close()
开发者ID:rrice,项目名称:shell-scripts,代码行数:13,代码来源:mbox-split.py

示例6: as_bytes

# 需要导入模块: from email.generator import BytesGenerator [as 别名]
# 或者: from email.generator.BytesGenerator import flatten [as 别名]
    def as_bytes(self):
        """
        converts the mail into a binary string

        @return     bytes

        See `Message.as_bytes <https://docs.python.org/3/library/email.message.html#email.message.Message.as_bytes>`_
        """
        fp = BytesIO()
        g = BytesGenerator(fp, mangle_from_=True, maxheaderlen=60)
        g.flatten(self)
        return fp.getvalue()
开发者ID:sdpython,项目名称:pymmails,代码行数:14,代码来源:email_message.py

示例7: main

# 需要导入模块: from email.generator import BytesGenerator [as 别名]
# 或者: from email.generator.BytesGenerator import flatten [as 别名]
def main():
    last_month = datetime.date.today().replace(day=1) - datetime.timedelta(days=1)
    mails = get_mails()
    if not mails:
        print("No mails")
        return
    files = get_files(last_month)
    if not files:
        print("No files")
        return

    multipart = MIMEMultipart()
    multipart['Subject'] = last_month.strftime("Temp: %Y-%m")
    multipart['From'] = str(Address("Temperatura", addr_spec="[email protected]"))
    multipart['To'] = ', '.join(str(m) for m in mails)

    multipart.attach(MIMEText("""\
Witaj!

W załączeniu zapisy temperatury z ostatniego miesiąca.

--Temperatura"""))
    
    for filepath in files:
        if not filepath.is_file():
            continue
        ctype, encoding = mimetypes.guess_type(filepath.name)
        if ctype is None or encoding is not None:
            ctype = 'application/octet-stream'
        maintype, subtype = ctype.split('/', 1)
        with filepath.open('rb') as f:
            attachment = MIMEBase(maintype, subtype)
            attachment.set_payload(f.read())
        encoders.encode_base64(attachment)
        attachment.add_header('Content-Disposition', 'attachment', filename=filepath.name)
        multipart.attach(attachment)

    with open(datetime.datetime.now().strftime('email-%Y-%m-%d-%H-%M-%s.msg'), 'wb') as f:
        fp = BytesIO()
        g = BytesGenerator(fp, mangle_from_=True, maxheaderlen=60)
        g.flatten(multipart)
        text = fp.getvalue()
        f.write(text)
    try:
        with smtplib.SMTP_SSL('poczta.o2.pl', port=465) as s:
            s.login('[email protected]', 'shtiSlaidd')
            s.send_message(multipart)
    except smtplib.SMTPResponseException as e:
        if e.smtp_code == 250 and e.smtp_error == b'Ok':
            pass # o2.pl bug. Returns 250 Ok instead of 221
        else:
            raise
开发者ID:jiivan,项目名称:sensorysztm,代码行数:54,代码来源:mailer.py

示例8: select

# 需要导入模块: from email.generator import BytesGenerator [as 别名]
# 或者: from email.generator.BytesGenerator import flatten [as 别名]
    def select(self, mailbox='INBOX.' + config.mailbox):
        """ Selects given mailbox or mailbox given in config gile. """

        logging.info("Selecting mailbox: " + mailbox)
        mbox = mailbox
        if mbox[0] != '"':
            mbox = '"' + mbox + '"'
        status, message = self.imap.select(mbox)
        if status == 'NO': # there's no such mailbox, let's create one
            self.imap.select()
            status, message = self.imap.create(mbox)
            if status != "OK":
                logging.error("Could not create mailbox: " + str(mbox))
            self.imap.subscribe(mbox)
            status, message = self.imap.select(mbox)
            if status != "OK":
                logging.error("Could not select mailbox: " + str(mbox))
            if mbox in ['"INBOX.testyarss2imap"', '"INBOX.' + config.mailbox + '"']:
                # The default yarss2imap mailbox was just created
                # Let's populate it with a README message.
                logging.info("Creating README message")
                msg = email.mime.multipart.MIMEMultipart('alternative')
                msg.set_charset("utf-8")
                msg['From'] = "[email protected]"
                msg['Subject'] = "Welcome to yarss2imap. README please."
                msg['To'] = config.username
                msg['Date'] = email.utils.format_datetime(
                                datetime.datetime.fromtimestamp(
                                    time.time()))
                f = open('README.md','r')
                content = f.read()
                f.close()
                part = email.mime.text.MIMEText(content, 'plain')
                msg.attach(part)
                bytesIO = BytesIO()
                bytesGenerator = BytesGenerator(bytesIO,
                                     mangle_from_=True,
                                     maxheaderlen=60)
                bytesGenerator.flatten(msg)
                text = bytesIO.getvalue() 
                status, error = self.imap.append(
                                    mbox,
                                    '',
                                    imaplib.Time2Internaldate(time.time()),
                                    text)
                if status != 'OK':
                    logging.error('Could not append README message: ' + error)
                self.imap.select(mbox)


        return status
开发者ID:Siggg,项目名称:yarss2imap,代码行数:53,代码来源:main.py

示例9: as_bytes

# 需要导入模块: from email.generator import BytesGenerator [as 别名]
# 或者: from email.generator.BytesGenerator import flatten [as 别名]
    def as_bytes(self, unixfrom=False, policy=None):
        """Return the entire formatted message as a bytes object.

        Optional 'unixfrom', when true, means include the Unix From_ envelope
        header.  'policy' is passed to the BytesGenerator instance used to
        serialize the message; if not specified the policy associated with
        the message instance is used.
        """
        from email.generator import BytesGenerator
        policy = self.policy if policy is None else policy
        fp = BytesIO()
        g = BytesGenerator(fp, mangle_from_=False, policy=policy)
        g.flatten(self, unixfrom=unixfrom)
        return fp.getvalue()
开发者ID:AlexHorlenko,项目名称:ironpython3,代码行数:16,代码来源:message.py

示例10: test_smtputf8_policy

# 需要导入模块: from email.generator import BytesGenerator [as 别名]
# 或者: from email.generator.BytesGenerator import flatten [as 别名]
    def test_smtputf8_policy(self):
        msg = EmailMessage()
        msg['From'] = "Páolo <fő[email protected]>"
        msg['To'] = 'Dinsdale'
        msg['Subject'] = 'Nudge nudge, wink, wink \u1F609'
        msg.set_content("oh là là, know what I mean, know what I mean?")
        expected = textwrap.dedent("""\
            From: Páolo <fő[email protected]>
            To: Dinsdale
            Subject: Nudge nudge, wink, wink \u1F609
            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 8bit
            MIME-Version: 1.0

            oh là là, know what I mean, know what I mean?
            """).encode('utf-8').replace(b'\n', b'\r\n')
        s = io.BytesIO()
        g = BytesGenerator(s, policy=policy.SMTPUTF8)
        g.flatten(msg)
        self.assertEqual(s.getvalue(), expected)
开发者ID:10sr,项目名称:cpython,代码行数:22,代码来源:test_generator.py

示例11: encode_multipart_message

# 需要导入模块: from email.generator import BytesGenerator [as 别名]
# 或者: from email.generator.BytesGenerator import flatten [as 别名]
def encode_multipart_message(message):
    # The message must be multipart.
    assert message.is_multipart()
    # The body length cannot yet be known.
    assert "Content-Length" not in message
    # So line-endings can be fixed-up later on, component payloads must have
    # no Content-Length and their Content-Transfer-Encoding must be base64
    # (and not quoted-printable, which Django doesn't appear to understand).
    for part in message.get_payload():
        assert "Content-Length" not in part
        assert part["Content-Transfer-Encoding"] == "base64"
    # Flatten the message without headers.
    buf = BytesIO()
    generator = BytesGenerator(buf, False)  # Don't mangle "^From".
    generator._write_headers = lambda self: None  # Ignore.
    generator.flatten(message)
    # Ensure the body has CRLF-delimited lines. See
    # http://bugs.python.org/issue1349106.
    body = b"\r\n".join(buf.getvalue().splitlines())
    # Only now is it safe to set the content length.
    message.add_header("Content-Length", "%d" % len(body))
    return message.items(), body
开发者ID:pontillo,项目名称:alburnum-maas-client,代码行数:24,代码来源:multipart.py

示例12: msg_as_input

# 需要导入模块: from email.generator import BytesGenerator [as 别名]
# 或者: from email.generator.BytesGenerator import flatten [as 别名]
 def msg_as_input(self, msg):
     m = message_from_bytes(msg, policy=policy.SMTP)
     b = io.BytesIO()
     g = BytesGenerator(b)
     g.flatten(m)
     self.assertEqual(b.getvalue(), msg)
开发者ID:syphar,项目名称:python-future,代码行数:8,代码来源:test_inversion.py


注:本文中的email.generator.BytesGenerator.flatten方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。