SMTP模块发送邮件

import os
import smtplib
# 处理多种形态的邮件主体我们需要 MIMEMultipart 类
from email.mime.multipart import MIMEMultipart
# 发送字符串的邮件
from email.mime.text import MIMEText# 不管什么类型的附件,都可以用MIMEApplication
from email.mime.application import MIMEApplication

def email_send(data_f_p_t, page_file_list, content="数据报", content_text=None):
    """
    发送邮件   服务器所需信息   文件路径  邮件内容设置
    :param data_f_p_t:  字典形式
             fromaddr:  邮件发送方邮箱地址
             password: 密码(部分邮箱为授权码)
             toaddrs: 邮件接受方邮箱地址 为列表形式  可以  群发
             email_site: 发送方的 邮箱服务器地址
    :param page_file_list: 文件路径 列表
    :param content: 邮件标题
    :param content_text: 内容
    :return:
    """
    fromaddr = data_f_p_t[‘fromaddr‘]
    password = data_f_p_t[‘password‘]
    toaddrs = data_f_p_t[‘toaddrs‘]  # 接收方邮件地址
    email_site = data_f_p_t[‘email_site‘]

    # 构造一个邮件体:正文 附件
    message = MIMEMultipart()

    # 邮件内容设置    content 邮件 文本内容
    if content_text:
        textApart = MIMEText(content_text)
        message.attach(textApart)

    # 循环添加 附件 路径
    for page_file in page_file_list:
        page_file_txt = os.path.basename(page_file)  # 获取 文件名
        # 邮件 附件 设置
        zipApart = MIMEApplication(open(page_file, ‘rb‘).read())
        # excel 注意:此处basename要转换为gbk编码,否则中文会有乱码
        zipApart.add_header(‘Content-Disposition‘, ‘attachment‘,
                            filename=(‘gbk‘, ‘‘, page_file_txt))
        message.attach(zipApart)  # 放入附件

    # message.attach(textApart)  # 放入邮件 内容
    message[‘From‘] = fromaddr  # 发件人
    message[‘To‘] = ‘,‘.join(toaddrs)  # 收件人
    message[‘Subject‘] = content  # 设置邮件标题

    try:
        # # 163 SMTP_SSL 邮箱服务器地址,端口默认为465
        # server = smtplib.SMTP_SSL(email_site)
        # 163 SMTP_SSL 邮箱服务器地址,端口默认为465
        server = smtplib.SMTP_SSL(email_site)

        server.login(fromaddr, password)  # 登陆邮箱
        server.sendmail(fromaddr, toaddrs, message.as_string())   # 发送邮件!
        print(‘success‘)
        server.quit()  # 退出
    except smtplib.SMTPException as e:
        print(‘error:‘, e)  # 打印错误

原文地址:https://www.cnblogs.com/huangjiyong/p/12294824.html

时间: 2024-10-09 18:40:21

SMTP模块发送邮件的相关文章

使用python的smtp模块发送邮件

使用Python的smtp模块,可以十分方便的编写自己的smtp客户端,来发送邮件.现在发现,不能使用腾讯的smtp服务器去法送,但是可以使用163的smtp服务器去发送邮件. 直接上代码吧 #!/usr/bin/env python ''' a simple smtp client ''' import smtplib from email.mime.text import MIMEText def sendMail(user,pwd,to,subject,text): msg=MIMETex

python之使用smtplib模块发送邮件

1 # 使用smtplib模块发送邮件 2 import smtplib 3 from email.mime.text import MIMEText 4 from email.header import Header 5 6 # 发送邮箱 7 sender = '[email protected]' 8 # 接收邮箱 9 receiver = '[email protected]' 10 # 发送邮件主题 11 subject = '测试邮件主题' 12 # 发送邮箱服务器 13 smtpse

python smtplib 模块发送邮件

发送邮件是大家经常碰到的,接下来看一下使用 python smtplib模块发送邮件,好了废话不多说,直接上代码: import smtplib,sys,os,timefrom email.mime.text import MIMEText import newreportdef send_mail(me,tomail,sub,content):     #要发给谁,可以发送多个人    mailto_list = [tomail+';']    #设置服务器,用户名.口令以及邮箱的后缀   

smtp模块+Gmail搭建邮件发送功能

声明:以下步骤在drupal7下测试通过(将gmail换为有smtp 服务器的sina邮箱可以发送邮件) 1.下载smtp模块: http://drupal.org/project/smtp(link is external) 2.解压模块,并在drupal下安装smtp模块. 3.配置stmp服务器:admin/config/system/smtp页面下配置 Turn this module on or off: On SMTP server: SMTP服务器地址(google为:smtp.g

python之smtplib模块 发送邮件

# -*- coding: utf-8 -*- #python 27 #xiaodeng #smtplib模块 发送邮件 import smtplib from email.mime.text import MIMEText ''' http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html #基本思路: 1.构造发送邮件的主程序,创建发邮件的对象,链接服务器.登录服务器.发送邮件命令行.关闭服务器 2.在主程序中为了便于错误分

【python】用SMTP模块发送带附件的邮件

第一篇博客!参考链接? 在书上看了用SMTP模块发邮件,试过之后发现并没有什么用.163邮箱开启了SMTP服务后,登陆了发送的时候却被拒收了. 找了前人的资料,发现被过期的教程害死了. 以下代码有效: import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.image import MIMEImage #全部为python内

Java通过socket实现smtp协议发送邮件

import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.Socket;import java.net.UnknownHostException; import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; /** 

Nagios监控之利用sendmail使用第三方SMTP服务发送邮件报警

使用Centos系统自带的sendmail服务作为客户端,使用第三方SMTP服务发送邮件报警. 此功能是在nagios服务正常安装运行的基础上实现的;因此要先安装好基本的nagios运行环境,这个可以参考本人相关的博文. 1.软件检测及安装 #rpm -q sendmail 不存在怎安装 #yum -y install sendmail 2.停止sendmail服务 这里不需要sendmail作为邮件服务端来运行,所以关闭sendmail服务. #service sendmail stop 3.

C#利用SMTP服务器发送邮件

使用.net(C#)发送邮件学习手册(带成功案例) 1.了解发送邮件的三种方式 2.实例介绍使用client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis 3.如何设定本机IIS的SMTP服务器 1.了解发送邮件的三种方式 第一:client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; //通過遠程SMTP服務器傳送