zoukankan      html  css  js  c++  java
  • python smtp 群发邮件

    最近工作中遇到使用脚本处理问题并发送结果邮件,使用python的smtp模块很简单的完成了实现。今天遇到一个问题,根据脚本的测试结果需要群发邮件,但是发送邮件的py文件只有首个地址收到了邮件。仔细排查发现个有意思的地方:

    发送邮件的py大致如下:

    1 def sendmail(message,to_addrs)
    2        ............................
    3        ...........................
    4        msg = MIMEMultipart()
    5        msg['From'] = _from
    6        msg['To'] = to_addrs
    7        ......................
    8        ......................
    9        mailserver.sendmail(_from, to_addrs, message)

    方法1 使用的方法是获取到邮件地址后,以“test@test.com,kratos@test.com,admin@test.com”以字符串形式作为参数“to_addrs”给了sendmail。脚本运行结束后只有test@test.com邮箱收到了邮件,后续地址均未收到邮件。

    google 了python 的smtp之后,修改的方法是:

    方法2 以["test@test.com","kratos@test.com","admin@test.com"]以列表形式作为参数“to_addrs”给了sendmail。

    然后将“msg["To"] = to_addrs” 行修改为 “msg["To"] = ",".join(to_addrs)”搞定,指定的邮件列表中的账户均收到邮件

    >>> a = "test@test.com,kratos@test.com,admin@test.com"
    >>> a
    'test@test.com,kratos@test.com,admin@test.com'
    >>> type(a)
    <type 'str'>
    >>> b = ["test@test.com","kratos@test.com","admin@test.com"]
    >>> c = ",".join(b)
    >>> c
    'test@test.com,kratos@test.com,admin@test.com'
    >>> type(c)
    <type 'str'>
    >>> a == c
    True

    以上看 a 与c没什么区别,使用方法2 成功搞定。有时间在继续看看吧,没知识太可怕了呵呵。

    备注:

      使用的是Gmail邮箱

  • 相关阅读:
    【转】对象持久化与数据序列化的联系?
    【转】Linux安装方法一(U盘引导)
    bash中的"-n"、"-z" 以及“[]” 、“[[]]”判断
    mysql获取行号
    IP白名单
    复合赋值位运算符“&=、| =”
    Java匿名内部类访问外部
    mysql的orde by 按照指定状态顺序排序
    Spring声明式事务
    定时任务总结
  • 原文地址:https://www.cnblogs.com/kratos0517/p/4138910.html
Copyright © 2011-2022 走看看