{"id":3935,"date":"2018-06-02T20:31:42","date_gmt":"2018-06-02T12:31:42","guid":{"rendered":"https:\/\/ixyzero.com\/blog\/?p=3935"},"modified":"2018-06-02T20:31:42","modified_gmt":"2018-06-02T12:31:42","slug":"python%e7%9a%84%e9%82%ae%e4%bb%b6%e5%8f%91%e9%80%81%e5%8a%9f%e8%83%bd%e6%a8%a1%e5%9d%97%e7%bc%96%e5%86%99","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/3935.html","title":{"rendered":"Python\u7684\u90ae\u4ef6\u53d1\u9001\u529f\u80fd\u6a21\u5757\u7f16\u5199"},"content":{"rendered":"<p>=Start=<\/p>\n<h4 id=\"id-\u6a21\u677f-\u7f18\u7531\uff1a\">\u7f18\u7531\uff1a<\/h4>\n<p>\u4e4b\u524d\u7528Python\u5199\u8fc7\u53d1\u9001\u90ae\u4ef6\u7684\u529f\u80fd\uff0c\u4f46\u6bcf\u6b21\u5728\u4f7f\u7528\u7684\u65f6\u5019\u8fd8\u4e0d\u592a\u65b9\u4fbf\uff0c\u6240\u4ee5\u8003\u8651\u7740\u6574\u7406\u4e00\u4e0b\u653e\u5728\u8fd9\u91cc\uff0c\u65b9\u4fbf\u4ee5\u540e\u4f7f\u7528\u3001\u53c2\u8003\u3002<\/p>\n<h4 id=\"id-\u6a21\u677f-\u6b63\u6587\uff1a\">\u6b63\u6587\uff1a<\/h4>\n<h5 id=\"id-\u6a21\u677f-\u53c2\u8003\u89e3\u7b54\uff1a\">\u53c2\u8003\u89e3\u7b54\uff1a<\/h5>\n<ul>\n<li>\u6284\u9001\uff08CC\uff09<\/li>\n<li>\u5bc6\u9001\uff08BCC\uff09<\/li>\n<\/ul>\n<pre class=\"lang:default decode:true\">#!\/usr\/bin\/env python\r\n# coding=utf-8\r\n\r\nimport logging\r\nfrom email.mime.multipart import MIMEMultipart\r\nfrom email.mime.text import MIMEText\r\nimport smtplib\r\n\r\nclass SendMail(object):\r\n    def __init__(self, host='smtp.qq.com', port=587, user='', passwd=''):\r\n        self.s = smtplib.SMTP('{0}:{1}'.format(host, port))\r\n\r\n    def mail(self, subject, content, mail_from, mail_to_str, mail_cc_str='', mail_bcc_str=''):\r\n        if isinstance(subject, unicode):\r\n            subject = subject.encode('utf-8')\r\n        if isinstance(content, unicode):\r\n            content = content.encode('utf-8')\r\n\r\n        msg = MIMEMultipart('alternative')\r\n        msg['subject'] = str(subject).decode('utf-8')\r\n        msg['From'] = mail_from\r\n        msg['To'] = mail_to_str\r\n        msg['Cc'] = mail_cc_str\r\n        msg['Bcc'] = mail_bcc_str\r\n        mail_to_all = mail_to_str.split(\",\") + mail_cc_str.split(\",\") + mail_bcc_str.split(\",\")\r\n\r\n        msg.attach(MIMEText(content, 'plain', 'utf-8'))\r\n\r\n        try:\r\n            self.s.ehlo()\r\n            self.s.starttls()\r\n            self.s.login(user, passwd)\r\n            self.s.sendmail(msg['From'], mail_to_all, msg.as_string())\r\n            self.s.quit()\r\n        except StandardError as e:\r\n            logging.error('Sent email Error: {0}'.format(e))\r\n\r\n\r\ndef send_email(subject, content, mail_to, mail_cc='', mail_bcc=''):\r\n    if isinstance(subject, unicode):\r\n        subject = subject.encode('utf-8')\r\n    if isinstance(content, unicode):\r\n        content = content.encode('utf-8')\r\n\r\n    msg = MIMEMultipart('alternative')\r\n    msg['subject'] = str(subject).decode('utf-8')\r\n    msg['From'] = 'user@qq.com'\r\n    msg['To'] = mail_to\r\n    msg['Cc'] = mail_cc\r\n    msg['Bcc'] = mail_bcc\r\n    mail_to_all = mail_to.split(\",\") + mail_cc.split(\",\") + mail_bcc.split(\",\")\r\n\r\n    msg.attach(MIMEText(content, 'plain', 'utf-8'))\r\n\r\n    try:\r\n        s = smtplib.SMTP('smtp.qq.com:587')\r\n        s.ehlo()\r\n        s.starttls()\r\n        s.login('user', 'passwd')\r\n        s.sendmail(msg['From'], mail_to_all, msg.as_string())\r\n        s.quit()\r\n    except StandardError as e:\r\n        logging.error('Sent email Error: {0}'.format(e))\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h5 id=\"id-\u6a21\u677f-\u53c2\u8003\u94fe\u63a5\uff1a\">\u53c2\u8003\u94fe\u63a5\uff1a<\/h5>\n<ul>\n<li><a href=\"https:\/\/stackoverflow.com\/questions\/1546367\/python-how-to-send-mail-with-to-cc-and-bcc\">https:\/\/stackoverflow.com\/questions\/1546367\/python-how-to-send-mail-with-to-cc-and-bcc<\/a><\/li>\n<li><a href=\"http:\/\/outofmemory.cn\/code-snippet\/14185\/usage-python-smtplib-library-email-augment-cc-bcc\">http:\/\/outofmemory.cn\/code-snippet\/14185\/usage-python-smtplib-library-email-augment-cc-bcc<\/a><\/li>\n<li><a href=\"http:\/\/outofmemory.cn\/code-snippet\/16442\/Python-send-email-with-cc-bcc\">http:\/\/outofmemory.cn\/code-snippet\/16442\/Python-send-email-with-cc-bcc<\/a><\/li>\n<\/ul>\n<p>=END=<\/p>\n","protected":false},"excerpt":{"rendered":"<p>=Start= \u7f18\u7531\uff1a \u4e4b\u524d\u7528Python\u5199\u8fc7\u53d1\u9001\u90ae\u4ef6\u7684\u529f\u80fd\uff0c\u4f46\u6bcf\u6b21\u5728\u4f7f\u7528\u7684\u65f6\u5019\u8fd8\u4e0d\u592a\u65b9\u4fbf\uff0c\u6240\u4ee5\u8003\u8651\u7740\u6574\u7406\u4e00\u4e0b [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,7],"tags":[1137,8,396],"class_list":["post-3935","post","type-post","status-publish","format-standard","hentry","category-knowledgebase-2","category-programing","tag-bcc","tag-python","tag-smtplib"],"views":4514,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/3935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/comments?post=3935"}],"version-history":[{"count":1,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/3935\/revisions"}],"predecessor-version":[{"id":3936,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/3935\/revisions\/3936"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=3935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=3935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=3935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}