python最简单的发邮件方式(不带附件)

今天在尝试使用python发送邮件,在网上看了很多教程,发觉对于初学者的我有点复杂和代码比较麻烦,而且也没有太多的注释告诉我这是干嘛用的,用法是什么

这个教程十分简单,但是我足够应付我日常工作的需要了,作为运维,我要的功能只是能够发送邮件并且正确显示其内容就够,不需要太多花俏的东西。

测试的准备工作是,我在虚拟机下把w的命令输出重定向到一个文件,作为邮件body体的发送内容。

w > msg.log

[[email protected] tmp]# cat msg.log

02:48:50 up 10:11,  1 user,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT

root     pts/0    192.168.178.1    02:48    0.00s  0.06s  0.00s w

[[email protected] tmp]#

以下是python的内容:

#!/usr/bin/python

import smtplib                         #导入模块

mailfrom=‘[email protected]‘              #定义发件人,收件人,密码
mailto=‘[email protected]‘
passwd=‘abcdefg‘

subject=‘this is a test‘                #定义主题
body=open(‘msg.log‘).read()             #读取文件的内容作为body信息

msg="""From:%s                           #定义发邮件的格式
TO:%s
Subject:%s
%s
""" % (mailfrom,mailto,subject,body)     #把变量传入到格式中

smtp=smtplib.SMTP()                      
smtp.connect(‘smtp.126.com‘)                #连接到126的邮箱服务器
smtp.login(mailfrom,passwd)                 #登陆邮箱
smtp.sendmail(mailfrom,mailto,msg)           #发送邮件

搞掂,这样就可以收到邮件了,但是在查看结果前,先要说明几个重点。

msg这个变量的格式完成后,必须是这样的:

>>> print msg                
From:[email protected]               #必须不与上面留空行
TO:[email protected]
Subject:this is a test
                                        #必须与上部分留空行
 02:48:50 up 10:11,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.178.1    02:48    0.00s  0.06s  0.00s w

如果不注意这些细节,会造成邮件接收是可能会是没有标题或标题错乱!

还有,msg不一定要用我这种字符串的处理方法,可以使用其他方法如列表和split,\n这样组合生成,但是生成后的格式应该要是一样的,就是说,条条大路通罗马~~只是我用了比较懒的方法

***这种生产环境中应该要有更多的try-except去判断流程的成功性,这里没有给出!!

好了,查看结果:

时间: 2024-11-05 13:39:56

python最简单的发邮件方式(不带附件)的相关文章

用Python编写简单的发红包程序和计算器原理

用Python编写简单的发红包程序: 第一种解法:数轴方法解决 import random def red_packet(money,num): money = money * 100 #将钱数转换成分为单位 ret = random.sample(range(1,money),num-1) #在最低钱数1分与总钱数之间生成人数减1个数作为数轴的节点 ret.sort() #对列表进行排序 ret.insert(0,0) ret.append(money) for i in range(len(

C# 发邮件类可发送附件

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Net.Mail; namespace Ajax.发邮件 { public class GetMail { //MailAddress ds = new MailAddress("[email protected]"); // Send(ds, "[email protected]&

java中利用commons-email-1.2.jar实现简单的发邮件

1.首先引入commons-email-1.2.jar包 2.直接看代码吧commons-email-1.2.jar中已经为我们已经封装好了方法 a.先来一个简单的不能发附件的 public class TestCommonEmail { public static void main(String[] args) { SimpleEmail simpleEmail = new SimpleEmail(); // 设置使用发送邮件的邮件服务器若使用qq是smtp.qq.com前提是qq已经开通s

Python+selenium自动循环发邮件

Python源代码如下: # coding=utf-8 from selenium import webdriver from time import sleep from random import randint def auto_throw(target_qq, username, password): """自动循环发邮件""" driver = webdriver.Chrome() driver.get("https://ma

spring boot 邮件发送(带附件)

首先开启QQ邮箱的POP.SMTP服务器,获取授权码. 设置-->账户-->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 pom.xml需要加载三个jar,可以在这个网站里下载:https://mvnrepository.com/ html页面 <form action="/send" method="post" enctype="multipart/form-data"> <ta

Kettle实现邮件发送并带附件功能

概述:数据抽取项目中,要求统计的数据报表定时发送报表.在网上搜了很多,没有发现比较好的文章.特做下笔记. 实现: 1.总体作业JOB截图 流程:设置导出的Excel文件名变量,导出Excel,并将导出的Excel以附件形式发送到指定邮箱. 其实实现邮件带附件 主要是组件是: 2.邮件设置(采用的是腾讯邮箱) 2-1:地址设置 2-2:服务器设置 2-3:邮件消息设置 2-4:附件设置(对于带附加发送的,这里设置比较重要) 到这里为止,kettle发送带附件的邮件作业已经开发完毕

发现用System.Net.Mail发邮件(代码附后),附件稍微大一点就会造成程序假死. 有没有什么简单的解决办法呢? 多谢!!

附件大,上传,发送一定会慢.程序卡,应该是主线程正在发送,邮件造成的.创建其他线程在后台去发.这样就不影响主线程做其他工作了 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net.Mail;

python+redis简单实现发红包程序

redis是什么? Redis 是一个高性能的key-value数据库! 想进一步了解请移步搜索引擎自行查找. 编写这个小程序的目的就是对redis进行一个简单的小操作,对redis有一个初步的了解,并未有什么高大尚的骚操作,适合小白阅读. 程序共分为三个部分. 1.创建红包 2.将红包存储到数据库 3.取出红包 1.创建红包 首先需要确定创建红包需要哪些参数. 1.红包的最小金额0.01 2.红包的数量 3.红包总金额 4.红包需要一个ID号(存储数据库的时候需要使用) 5.每个红包的金额 1

python实现邮件发送完整代码(带附件发送方式)

实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ = 'Administrator'#coding=gb2312 from email.Header import Headerfrom email.MIMEText import MIMETextfrom email.MIMEMultipart import MIMEMultipartimport smtplib, datetime def SendMailAttach(): msg = MIMEMultip