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')
分享到:
相关推荐
总的来说,`python_ics`库是一个用于Python的iCalendar处理工具,适用于需要与ical格式数据打交道的应用场景,如日历应用、会议管理软件或者自动化任务调度系统。它简化了ical文件的读写操作,让开发者能更专注于...
总的来说,`python_ics`是一个强大且易用的Python库,它简化了iCalendar文件的处理,为开发者提供了快速构建日历应用的途径。无论你是想在Web应用中添加日历功能,还是需要处理日程安排,这个库都是一个理想的选择。...
通过这个库,开发者可以轻松地读取、创建和修改ics文件,支持各种日历应用,如Google Calendar、Apple iCal等。 **2. 版本和兼容性** “2.9”是该库的版本号,表示这是`python_ics`的第2.9次更新。"cp34"代表...
Python生成2022卡塔尔世界杯赛程日历订阅源代码,不错过每一场比赛,直接运行main.py即可,首先从百度体育抓取最新2022卡塔尔世界杯赛程日历,已完赛部分爬取比分,然后生成两个ics文件,worldcup2022_alarms.ics带...
在这个特定项目中,开发人员使用 Python 或类似工具解析 ICS 文件,提取其中的日历事件信息,然后将这些信息存储在 MySQL 数据库中。MySQL 是一个广泛使用的开源关系型数据库管理系统,它提供了高效的数据存储和检索...
在Python编程环境中,这种转换可以通过读取ICS文件的内容,解析其结构,然后将数据写入CSV文件来实现。Python的`ics`库可以用来处理ICS文件,而`csv`模块则用于处理CSV文件操作。以下是详细的步骤: 1. **安装依赖...
4. **iCalendar兼容**:Khal与iCalendar(.ics)格式兼容,这意味着它可以与其他常见的日历软件(如Google Calendar、Apple Calendar等)无缝集成。 5. **定制化**:用户可以通过配置文件自定义显示样式、颜色和...
sleepbot2ical 通过 Ludovic Lacoste 将 .csv 从 mysleepbot.com 转换为 .ics ical 日历的 Python 脚本 是 SleepBot Android 应用程序的主页: : id com.lslk.sleepbot fr 依赖项:
这个库是Python开发者用于解析日历格式数据的一个工具,特别适用于处理与日期、时间相关的任务。`calparse`库使得从不同格式的日历文件中提取信息变得简单易行。 首先,让我们了解一下`tar.gz`文件。这是一种常见的...
4. **数据同步**:通过Google Calendar API或者其他日历应用的API,将这些事件添加到目标日历应用中。这可能涉及到OAuth2.0授权流程,以确保安全地访问用户的日历账户。 5. **错误处理和用户界面**:项目可能还包含...
替换ics通过邮件发送到iOS设备上,通过系统自带的邮件App可以直接将日历导入,建议在导入前新建一个新的日历分区macOS用户可以直接导入ics文件获取日历相关捷径前往项目在线地址补课2020年国庆及中秋节放假,补课...
另外,如果涉及多平台的日历同步,比如与Google日历或Apple日历的集成,就需要理解API调用和数据交换的规范,例如使用iCalendar(.ics)文件格式,这是一种标准的格式,可以用来共享和导入日历数据。 最后,用户...
6. **导入导出功能**:可能提供导入其他日历格式(如.ics或.csv)的功能,方便用户从其他应用程序迁移数据,或导出数据备份。 7. **隐私保护**:考虑到个人数据的安全,程序可能会有密码保护或加密功能,确保用户的...
Python库tweetcal-0.4.2-py2-none-any.whl是一个用于处理Twitter日历事件的Python开发工具。这个库特别适用于后端开发者,它提供了集成Twitter数据并将其转化为日历格式的功能,使得用户可以方便地管理和查看与...
最后,考虑到可扩展性和兼容性,日历原代码可能需要遵循一些标准或协议,如iCalendar(.ics)文件格式,它允许日历数据在不同应用之间交换。这种格式包含了事件、任务、日程等信息,可以被Outlook、Google Calendar...
1. **安装**:首先,你可以通过Python的包管理器pip进行安装: ``` pip install types-vobject ``` 2. **vCard操作**:读取vCard文件并打印其内容: ```python from vobject import readVCard with open('...
Python库types-vobject-0.9.2是一个用于处理iCalendar和vCard数据的强大工具,主要针对那些需要处理日历和联系人信息的开发者。这个版本的库是0.9.2,通常会包含一系列的功能改进和错误修复,以提供更稳定的性能。在...
- 通知与提醒:将事件信息封装在 iCalendar 文件中并通过电子邮件发送,用户打开即可自动添加到日历。 6. iCalendar 文件订阅: - 用户可以通过导入到支持 iCalendar 格式的日历应用(如 Google 日历、Apple 日历...
为了解决这个问题,开发者创建了AlbertToICS,这是一个基于Python的小工具,它允许用户将NYU Albert的日程数据导出为ics格式,这是一种通用的日历交换格式,可以被大多数现代日历应用识别并导入。 **Python编程基础...
5. **数据导入导出**:支持iCalendar(.ics)或其他常见日历格式的数据导入导出,方便在不同平台间同步日程。 6. **API接口**:提供RESTful API,允许与其他系统集成,如CRM、项目管理系统等,实现数据互通。 7. *...