python 发邮件本地发送没问题 阿里云Linix上发送不出去问题

 加上  smtplib.SMTP_SSL(mail_host, 465)  #阿里云把25端口封掉了

附完整代码

import pandas as pd
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import time

def get_current_time():
    return str(time.strftime('%Y-%m-%d %H'))
current_time = get_current_time()
filename='/opt/user/liustockEarlyWarning/data/stockEarlyWarning-20180525.xlsx'  #附件地址
areceiver = '***@centchain.com'
acc = ''
def send_mail(to_list,sub,context,filename):  #to_list:收件人;sub:主题;content:邮件内容
    mail_host="smtp.***.com"  #设置服务器
    mail_user="****.com"    #用户名
    mail_pass="*****"   #口令
    mail_postfix="****.com"  #发件箱的后缀
    me="大数据"+"<"+mail_user+"@"+mail_postfix+">"   #这里的“服务器”可以任意设置,收到信后,将按照设置显示
    msg = MIMEMultipart() #给定msg类型
    msg['Subject'] = sub #邮件主题
    msg['From'] = me
    msg['To'] = areceiver
    msg['Cc'] = acc
    msg.attach(context)
    #构造附件1
    att1 = MIMEText(open(filename, 'rb').read(), 'xls', 'gb2312')
    att1["Content-Type"] = 'application/octet-stream'
    att1["Content-Disposition"] = 'attachment;filename='+filename[-13:-1]#这里的filename可以任意写,写什么名字,邮件中显示什么名字,filename[-6:]指的是之前附件地址的后6位
    msg.attach(att1)
    try:
        # s = smtplib.SMTP()
        s = smtplib.SMTP_SSL(mail_host, 465)  #阿里云把25端口封掉了
        s.connect(mail_host)  #连接smtp服务器
        s.login(mail_user,mail_pass)  #登陆服务器
        s.sendmail(me, areceiver.split(',')+ acc.split(','), msg.as_string())  #发送邮件
        s.close()
        return True
    except Exception:
        return False


if __name__ == '__main__':
    # mailto_list=['***@centchain.com','***@centchain.com']
    data=pd.read_excel(filename, sheet_name=0)
    a=pd.DataFrame(data)
    b=a.iloc[:,0].size
    sub="万达影票库存"
    d='' #表格内容
    for i in range(b):
        d=d+"""
        <tr>
          <td>""" + str(a.index[i]) + """</td>
          <td>""" + str(a.iloc[i][0]) + """</td>
          <td width="60" align="center">""" + str(a.iloc[i][1]) + """</td>
        </tr>"""
    html = """\
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


<body>
<div id="container">
<p><strong>这是万达影票"""+current_time+"""时的库存:</strong></p>
<div id="content">
 <table width="30%" border="2" bordercolor="black" cellspacing="0" cellpadding="0">
<tr>
  <td width="40"><strong></strong></td>
  <td width="50"><strong>商品名</strong></td>
  <td width="60" align="center"><strong>库存</strong></td>
</tr>"""+d+"""
</table>
</div>
</div>
</div>
</body>
</html>

      """
    context = MIMEText(html,_subtype='html',_charset='utf-8')  #解决乱码
    if send_mail(areceiver.split(',')+ acc.split(','),sub,context,filename):
        print ("发送成功")
    else:
        print( "发送失败")

<think>好的,我现在需要帮助用户通过阿里云镜像站点安装pymysql库。首先,我得回忆一下用户提到的引用内容,特别是引用[3],里面提到了在Windows下配置pip使用阿里云镜像的方法。用户现在的问题明确,所以应该主要参考这部分信息。 用户可能已经知道pip的基本用法,但需要指导如何指定镜像源。根据引用[3]中的例子,配置pip.ini文件可以设置默认的镜像源。但用户可能想一次性安装而修改配置文件,所以使用临时命令更合适。 首先,安装Python库通常使用pip install命令,加上-i参数指定镜像源。阿里云的PyPI镜像地址是http://mirrors.aliyun.com/pypi/simple/,所以命令应该是pip install pymysql -i http://mirrors.aliyun.com/pypi/simple/。需要确认这个地址是否正确,可能需要检查阿里云镜像站的官方文档,确保没有变更。 另外,用户可能担心信任问题,所以加上--trusted-host参数,避免SSL验证错误。因此命令应该是pip install pymysql -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com。这样即使在没配置SSL的环境下也能正常安装。 如果用户需要长期使用阿里云镜像,可以按照引用[3]的方法创建pip.ini文件,这样以后安装都需要加参数。但用户当前的问题可能只需要一次性安装,所以给出两种方法会更全面。 还要注意用户的操作系统,引用[3]提到的是Windows,但如果是Linux或Mac,配置方法类似,只是文件路径同。过用户的问题中没有明确说明系统,所以应该给出通用的命令,同时补充同系统的配置路径。 最后,验证安装是否成功,可以通过执行python -c "import pymysql"来测试,如果没有报错,说明安装成功。这一步也应该包含在回答中,帮助用户确认结果。 总结步骤:1. 临时使用镜像安装的命令;2. 永久配置的方法;3. 验证安装。同时需要确保命令的准确性,避免拼写错误。可能的问题包括镜像地址错误、SSL验证问题,或者pip版本过旧,所以提醒用户升级pip也是好的做法。</think>### 通过阿里云镜像安装pymysql的方法 #### 方法1:临时指定镜像源安装 在命令行中直接使用`-i`参数指定阿里云镜像地址: ```bash pip install pymysql -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com ``` - `--trusted-host`参数用于跳过SSL验证(镜像源为HTTP协议时需要) - 此方法仅对当前命令生效,适合临时使用 #### 方法2:永久配置镜像源(推荐) 1. **Windows系统** 创建文件 `C:\Users\你的用户名\pip\pip.ini`,添加以下内容: ```ini [global] index-url = http://mirrors.aliyun.com/pypi/simple/ trusted-host = mirrors.aliyun.com ``` 2. **Linux/Mac系统** 创建文件 `~/.pip/pip.conf`,添加相同内容: ```ini [global] index-url = http://mirrors.aliyun.com/pypi/simple/ trusted-host = mirrors.aliyun.com ``` 配置完成后直接执行: ```bash pip install pymysql ``` #### 验证安装 执行以下命令无报错即表示成功: ```bash python -c "import pymysql" ``` --- ### 相关问题 1. 如何查看已配置的pip镜像源? 2. 使用阿里云镜像安装库时出现SSL证书错误如何解决? 3. 如何通过阿里云镜像批量安装Python依赖库? [^1]: 引用[3]中提到的阿里云镜像配置方法 [^2]: 引用[2]中关于阿里云工具生态的支持性说明
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值