email的rfc:
https://tools.ietf.org/html/rfc2446
方便起见,用代码说话(只是最简单的版本,各种定制需求可以参看rfc,不过很多效果需要客户端的支持,支持的比较好的是outlook)
# encoding: utf-8
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
import os,datetime
def send_email(**kwargs):
"""
method
event
dtstart
due
msg
dtstamp
"""
ical = """
BEGIN:VCALENDAR\r\n
PRODID:pyICSParser\r\n
METHOD:%(method)s\r\n
VERSION:2.0\r\n
BEGIN:%(event)s\r\n
DTSTART:%(dtstart)s\r\n
DUE:%(due)s\r\n
PRIORITY:1\r\n
SUMMARY:%(msg)s\r\n
UID:calsrv.example.com-873970198738777-00@example.com\r\n
SEQUENCE:0\r\n
DTSTAMP:%(dtstamp)s\r\n
STATUS:%(status)s\r\n
END:VEVENT\r\n
END:VCALENDAR\r\n
"""% kwargs
eml_body = u"%(msg)s" % kwargs
msg = MIMEMultipart('mixed')
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = u"%(msg)s" % kwargs
msg['To'] = ",".join(attendees)
part_email = MIMEText(eml_body,"html",'utf-8')
part_cal = MIMEText(ical,'calendar;method=%(method)s'%kwargs,'utf-8')
msgAlternative = MIMEMultipart('alternative')
msg.attach(msgAlternative)
ical_atch = MIMEBase('application/ics',' ;name="%s"'%("invite.ics"))
ical_atch.set_payload(ical)
Encoders.encode_base64(ical_atch)
ical_atch.add_header('Content-Disposition', 'attachment; filename="%s"'%("invite.ics"))
eml_atch = MIMEBase('text/plain','')
Encoders.encode_base64(eml_atch)
eml_atch.add_header('Content-Transfer-Encoding', "")
msgAlternative.attach(part_email)
msgAlternative.attach(part_cal)
s = smtplib.SMTP()
s.connect('xxxx')
s.login(' ', ' ')
s.sendmail('auto@sys.com', attendees, msg.as_string())
s.close()
attendees =['x@sys.com']
fro = ""
ddtstart = datetime.datetime.utcnow()
dur = datetime.timedelta(minutes= 5)
dtend = ddtstart + dur
dtend = dtend.strftime("%Y%m%dT%H%M%SZ")
send_email(method='PUBLISH',event='VTODO',dtstart=dtend,due=dtend,msg='publish 任务',dtstamp=dtend, status="COMPLETED")
send_email(method='REQUEST',event='VTODO',dtstart=dtend,due=dtend,msg='request 任务',dtstamp=dtend, status="NEEDS ACTION")
send_email(method='PUBLISH',event='VEVENT',dtstart=dtend,due=dtend,msg='publish 日历',dtstamp=dtend, status="CONFIRMED")
send_email(method='REQUEST',event='VEVENT',dtstart=dtend,due=dtend,msg='request 日历',dtstamp=dtend, status='CONFIRMED')
分享到:
相关推荐
讲xlsx文件的课表,转成ics格式,然后就可以批量的将课表添加到日历中。以实现对生活更有逻辑的管理
Python生成2022卡塔尔世界杯赛程日历订阅源代码,不错过每一场比赛,直接运行main.py即可,首先从百度体育抓取最新2022卡塔尔世界杯赛程日历,已完赛部分爬取比分,然后生成两个ics文件,worldcup2022_alarms.ics带...
sleepbot2ical 通过 Ludovic Lacoste 将 .csv 从 mysleepbot.com 转换为 .ics ical 日历的 Python 脚本 是 SleepBot Android 应用程序的主页: : id com.lslk.sleepbot fr 依赖项:
替换ics通过邮件发送到iOS设备上,通过系统自带的邮件App可以直接将日历导入,建议在导入前新建一个新的日历分区macOS用户可以直接导入ics文件获取日历相关捷径前往项目在线地址补课2020年国庆及中秋节放假,补课...
:calendar: 无需网络界面即可将ICS文件导入您的Google日历。 TL; DR docker run -it --rm \ -e " TZ=Europe/Berlin " \ -v " $PWD /config:/config " \ -v " $PWD /data:/data:ro " \ pschmitt/gcal-import-ics...
pyicalmerge 展示其工作原理的视频: : 将多个 .ics (icalendar) 文件合并在一起,并为 Google 日历上传做好准备。 基于 Pekka Järvinen (2010) 的并由 Pedro Lopes 修改,因为它是一个混音,我保留了原始许可证...
ical-expander :calendar: ICS / iCal / iCalendar解析器/扩展器。 周围的包装器,可自动处理EXDATE (排除的递归事件), RRULE和...例如,从Google日历下载.ics。 const IcalExpander = require('ical-expander');
NCU 课表转.ics file tool Intro 为避免刚开学搞不清楚上课教室和上课时间,... python 3.5+ pip install icalendar pip install request pip install pandas Usage Step 0 : Push download button to download(clone
ics是最流行的日历文件之一,受到几乎所有日历软件的支持。这个程序能根据指定的提醒策略,将高校的课程表信息生成一个可以导入到各个日历软件的ics文件。 ics同时可以导入至Windows日历以外的系统日历软件,包括...
创建具有动态重复事件的ics日历。 用法 adversary [-h] [-t T] [-d D] [-f OUT] namepattern startdate count {year, month, day} 换人规则 namepattern字段可以包含替换字符,例如{},它们被替换为特定于事件的...
健壮的勺子日历阅读和计划小部件为什么将其称为“坚固...或可能作为操作系统的模块获得)通过命令行使用: python calreader2.py --url http://some.url/calendar.ics --verbose该脚本将在读取文件,并为“今天”发生
icssplit 将较大的.ics / .ical文件拆分为较小的文件,以导入到Google Calendar中,该日历仅支持小于1MB的文件。 要安装和使用: $ pip3 install icssplit$ icssplit somefile.ics outfile --maxsize=900000 这会将...
gcalcli是一个Python应用程序,允许您从命令行访问Google日历。 您可以轻松获取议程,搜索事件,添加新事件,删除事件,编辑事件,查看最近更新的事件,甚至从Microsoft Exchange和/或其他来源导入那些烦人的ICS / ...
阿尔伯特托ICS 将您的日程从 NYU Albert 导出到 ics 文件,以便能够将其导入任何日历。 运行 schedule.py
这个简单的脚本将生成一个.ics日历文件,其中包含给定开始日期的所有 P90X3 锻炼。 每天的锻炼将在同一时间创建,持续一小时(因为这在日历中看起来比 30 分钟事件更漂亮)。 确保安装了所有模块,并在 python 脚本...
这是一个python脚本,可将南安普敦大学新的(自2015/16起)日历转换为icalendar标准格式(.ics) 然后,可以使用这种icalendar格式将其导入许多日历(例如Google日历)中。 安装 如果尚未 ,请。 创建一个虚拟...
12306toICS当收到12306收件的时候, 进行解析和处理, 发布成ics日历.使用参考部署这是一个基于Django 1.8的app, 直接插入Django工程即可. 只有一个依赖requests
命令行脚本以生成包含imsakiyah时间表/祈祷时间表的ics文件。 该脚本使用来自的API 要求 此脚本需要python 3.0+版本 安装 git clone https://github.com/lantip/imsakiyah.git $cd imsakiyah 运行pip install -r ...
虚拟经济学 ... 获取指向您的日历的URL-URL应以.ics结尾。 如果您使用的是Google日历,则可以查看以了解单击的位置。 如果您不使用Google日历,请搜索如何获取日历提供商的此链接。 例如,网站日历的网址是 ...
概要主要是生成中国的假期,以及农历凶吉情况的ics文件,可以使用在ios的日历上面。使用Install下载代码,并且安装ics.py用到的库,python-dateutil,arrow,six. 直接运行 python2 icalics.py 即可生成假日和命理配置...