def main(cli_args=None): parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter) parser.add_argument("file", nargs="?", help="Markdown file for email content. " \ "Default to STDIN.") parser.add_argument("--subject", "-s", help="Subject line") parser.add_argument("--from", "-f", dest='from_', help="From address") parser.add_argument("--to", "-t", help="To addresses, separated by comma") parser.add_argument("--cc", "-c", help="CC addresses, separated by comma") parser.add_argument("--bcc", "-b", help="Bcc address, separated by comma") parser.add_argument("--reply-to", "-r", help="Reply-to address") parser.add_argument("--css", help="Use a custom CSS file") parser.add_argument("--print-only", "-p", action='store_true', help="Only print out rendered html") if cli_args: args = parser.parse_args(cli_args) else: args = parser.parse_args() if args.file: content = open(args.file, encoding='utf-8').read() image_root = os.path.dirname(args.file) else: content = sys.stdin.read() image_root = os.getcwd() if args.css: css = open(args.css, encoding='utf-8').read() else: css = None email_content = mdmail.EmailContent(content, css=css, image_root=image_root) if not args.from_: from_email = email_content.headers.get('from') or \ os.environ.get('MDMAIL_DEFAULT_SENDER') else: from_email = args.from_ smtp = { 'host': os.environ.get('MDMAIL_HOST', 'localhost'), 'port': int(os.environ.get('MDMAIL_PORT', 25)), 'tls': to_bool(os.environ.get('MDMAIL_USE_TLS')), 'ssl': to_bool(os.environ.get('MDMAIL_USE_SSL')), 'user': os.environ.get('MDMAIL_USERNAME',''), 'password': os.environ.get('MDMAIL_PASSWORD',''), } if args.print_only: print("==========HTML Content===========") print(email_content.html + '\n') print("==========Plain-text Content===========") print(email_content.text + '\n') else: mdmail.send(email_content, subject=args.subject, from_email=from_email, to_email=args.to, cc=args.cc, bcc=args.bcc, reply_to=args.reply_to, smtp=smtp)
def send_msg(self, to_user=None, title=None, content=None, **kwargs): """ 发送普通邮件 :param to_user: 接收人email :param title: 标题 :param content: 内容 :param kwargs: :return: """ smtp = { 'host': self.smtp_server[0], 'port': self.smtp_server[1], 'user': self.from_addr, 'password': self.password } if to_user is None: to_user = sender.config.get_config('mail_from_addr', 'mail') if content is None: content = title mdmail.send(content, subject=title, from_email=self.from_addr, to_email=to_user, smtp=smtp) print("发送成功 - [" + to_user + "] - [" + title + "]:\r\n" + content)
message = """ # Patient Notes * Patient Observation notes #1 * Patient Observation notes cont ## This is a sample numbered list 1. Vent setting 2. Vital Signs 4. ABG *that* **is** all. """ smtp = { 'host': 'smtp.mailtrap.io', 'port': 2525, 'tls': False, 'ssl': False, 'user': '******', 'password': '******', } mdmail.send(message, subject=subject, from_email=sender, to_email=receiver, smtp=smtp)
import mdmail import smtplib email = """ # Sample Email - Python is awesome - Markdown is cool """ EMAIL_ADDRESS = "*****@*****.**" EMAIL_PASSWORD = "******" email = 'Hey' smtp = { 'host': 'smtp.gmail.com', 'port': 587, 'tls': False, 'ssl': True, 'user': '******', 'password': '******' } mdmail.send(email, subject='Sample Email', from_email=EMAIL_ADDRESS, to_email=EMAIL_ADDRESS, smtp=smtp)