精华内容
下载资源
问答
  • 本软件是由邮箱资料站旗下outlook邮箱产品技术部独家研制开发,软件采用直观方式已发出或收到的邮件时间进行修改,直接导入登录网页,取得相关值,然后进行已发出或收到的邮件时间修改,已发出或收到的邮件时间修改...
  • 虽然主流邮箱都可以定时发送邮件,但还是尝试用python写了一个定时发送邮件的脚本,设定好一个发送时间后,可以按下面步骤将文件通过QQ邮箱发送出去。文件的最后修改及最后访问时间随机调整为发邮件前20~25分钟;...

    虽然主流邮箱都可以定时发送邮件,但还是尝试用python写了一个定时发送邮件的脚本,设定好一个发送时间后,可以按下面步骤将文件通过QQ邮箱发送出去。

    文件的最后修改及最后访问时间随机调整为发邮件前20~25分钟;

    文件超过10M或是一个文件夹时,则自动生成zip压缩包;

    通过邮箱自动发送。

    有几个点需要特别注意一下:

    修改文件的时间属性需要用到win32API的SetFileTime,所以需要先安装pywin32模块;

    因为是通过SMTP服务发送的邮件,需要先在电子邮箱中打开SMTP服务

    使用SMTP发送邮件需要邮箱地址和授权码,授权码需要在邮箱设置中获取

    以下代码:

    from win32file import CreateFile, SetFileTime, GetFileTime, CloseHandle

    from win32file import GENERIC_READ, GENERIC_WRITE, OPEN_EXISTING

    from pywintypes import Time

    from threading import Timer

    from email.header import Header

    from email.mime.text import MIMEText

    from email.mime.application import MIMEApplication

    from email.mime.multipart import MIMEMultipart

    import time, os, random, zipfile, smtplib

    def ModifyFileTime(filePath, lastTime):

    #构造时间

    fh = CreateFile(filePath, GENERIC_READ|GENERIC_WRITE, 0, None, OPEN_EXISTING, 0, 0)

    offsetSec=random.randint(1200, 1500)

    cTime, aTime, wTime = GetFileTime(fh)

    aTime = Time(time.mktime(lastTime) - offsetSec)

    wTime = Time(time.mktime(lastTime) - offsetSec)

    #修改时间属性

    SetFileTime(fh, cTime, aTime, wTime)

    CloseHandle(fh)

    def GetFilePathList(filePath, result):

    if os.path.isdir(filePath):

    files = os.listdir(filePath)

    for file in files:

    if os.path.isdir(filePath + '/' +file):

    GetFilePathList(filePath + '/' + file, result)

    else:

    result.append(filePath + '/' + file)

    else:

    result.append(filePath)

    def RunZipFile(filePath):

    #构造压缩包路径

    zipFilePath = os.path.basename(filePath)

    if os.path.isdir(filePath):

    zipFilePath = zipFilePath + '.zip'

    else:

    zipFilePath = os.path.splitext(zipFilePath)[0] + '.zip'

    #文件已存在则删除原有文件

    if os.path.exists(zipFilePath):

    os.remove(zipFilePath)

    #创建压缩包

    zipFileList = []

    GetFilePathList(filePath, zipFileList)

    f = zipfile.ZipFile(zipFilePath, 'w', zipfile.ZIP_DEFLATED)

    for fileP in zipFileList:

    arcName = os.path.basename(fileP)

    if os.path.isdir(filePath):

    dirName = os.path.dirname(fileP)

    arcName = dirName.replace(os.path.dirname(dirName),'') + '/' + arcName

    f.write(fileP, arcName)

    f.close()

    return zipFilePath

    def SendEmail(filePath):

    #邮件设置

    fromAddr = 'XXXXXXXXX@qq.com'#发件地址

    autho = 'XXXXXXXXXXXXXXXX'#授权码

    smtpServer = 'smtp.qq.com'#smtp服务器

    #邮件信息

    toAddr = 'XXXXXXXX@163.com'#收件地址

    title = "YourTitle"#主题

    text = 'YourText'#正文

    annexPath = filePath#附件路径

    #构造邮件

    message = MIMEMultipart()

    message['From'] = fromAddr

    message['To'] = toAddr

    message['Subject'] = Header(title, 'utf-8')

    message.attach(MIMEText(text, 'plain', 'utf-8'))

    #构造附件

    annex = MIMEApplication(open(annexPath,'rb').read())

    annex.add_header('Content-Disposition', 'attachment', filename = os.path.basename(annexPath))

    message.attach(annex)

    #发送邮件

    server = smtplib.SMTP_SSL(smtpServer, 465)

    server.login(fromAddr, autho)

    server.sendmail(fromAddr, [toAddr], message.as_string())

    server.quit()

    def PreparingFilesAndSend(filePath, runTime):

    annexPath = filePath

    if os.path.isdir(filePath):

    #遍历文件,修改时间属性

    modFileList = []

    GetFilePathList(filePath, modFileList)

    for fileP in modFileList:

    ModifyFileTime(fileP, runTime)

    #打包

    annexPath = RunZipFile(filePath)

    else:

    #修改时间属性

    ModifyFileTime(filePath, runTime)

    #判断是否需要压缩

    if os.path.getsize(filePath)/float(1024*1024) > 10:

    annexPath = RunZipFile(filePath)

    #发送邮件

    SendEmail(annexPath)

    def TimedTask(filePath, runTime):

    interval = time.mktime(runTime) - time.mktime(time.localtime())

    Timer(interval, PreparingFilesAndSend, args=(filePath, runTime)).start()

    fp = r"C:/Users/imfour/Documents/pythonTest/testtxt.txt"

    rt = "2019-6-17 02:08:00"

    #转化为结构化时间

    timeFormat = "%Y-%m-%d %H:%M:%S"

    s_time=time.strptime(rt, timeFormat)

    if __name__ == "__main__":

    TimedTask(fp, s_time)

    https://www.jianzhuj.cn/news/17593.html

    展开全文
  • 在GMail中查看电子邮件时,当显示电子邮件发送的日期和时间时,将使用您的本地时区。“周二,2012年8月28日02:49:13-0500”将被解析,然后更新到本地时区,并以特定于GMail的方式格式化。解析和格式化stdlib方式...

    在GMail中查看电子邮件时,当显示电子邮件发送的日期和时间时,将使用您的本地时区。“周二,2012年8月28日02:49:13-0500”将被解析,然后更新到本地时区,并以特定于GMail的方式格式化。

    解析和格式化stdlib方式

    email.utils模块包含一个^{} function,专门处理带有时区偏移的电子邮件头。

    它返回与^{}兼容的元组,但添加了时区偏移量。另一个^{} function将该元组转换为偏移值(自UNIX纪元以来的秒数)。然后可以很容易地将该值转换为datetime.datetime()类型的对象。

    同一模块还有一个^{} function来将UNIX epoch时间戳转换为与电子邮件兼容的日期字符串:>>> from email.utils import parsedate_tz, mktime_tz, formatdate

    >>> import time

    >>> date = 'Tue, 28 Aug 2012 02:49:13 -0500'

    >>> tt = parsedate_tz(date)

    >>> timestamp = mktime_tz(tt)

    >>> print formatdate(timestamp)

    Tue, 28 Aug 2012 07:49:13 -0000

    现在,我们有一个格式的日期在UTC适合发送电子邮件。要将此打印为mylocal时区(由我的计算机决定),您需要将localtime标志设置为True:>>> print formatdate(timestamp, True)

    Tue, 28 Aug 2012 08:49:13 +0100

    使用更好的工具分析和格式化

    请注意,当我们尝试处理时区时,事情变得越来越棘手,而formatdate()函数并没有给您提供任何选项来设置稍微不同的格式(就像GMail一样),也不允许您选择不同的时区。

    输入外部^{} module;它有一个解析函数,可以处理几乎任何事情,并正确地支持时区>>> import dateutil.parser

    >>> dt = dateutil.parser.parse(date)

    >>> dt

    datetime.datetime(2012, 8, 28, 2, 49, 13, tzinfo=tzoffset(None, -18000))

    parse()函数返回一个^{} instance,这使得格式化更加容易。现在,我们可以使用^{} function来像您的电子邮件客户端那样输出:>>> print dt.strftime('%a, %b %d, %Y at %I:%M %p')

    Tue, Aug 28, 2012 at 02:49 AM

    当然,这仍然在本地时区中;要将其转换为您的时区,请使用^{} method,并使用一个新的tzone对象。这个python-dateutil包对我们来说很方便。

    以下是您如何在本地时区(到您的机器)中打印它:>>> import dateutil.tz

    >>> print dt.astimezone(dateutil.tz.tzlocal()).strftime('%a, %b %d, %Y at %I:%M %p')

    Tue, Aug 28, 2012 at 09:49 AM

    或者使用特定时区:>>> print dt.astimezone(dateutil.tz.tzstr('Asia/Kolkata')).strftime('%a, %b %d, %Y at %I:%M %p')

    Tue, Aug 28, 2012 at 07:49 AM

    展开全文
  • 我正在尝试为使用Django发送电子邮件设置超时。我正在使用Django 1.7.3和python v2.7.6。我的方法是遵循here中的django文档。因此,我要做的是通过在django / core / mail / backends文件夹中使用以下代码创建一个名...

    我正在尝试为使用Django发送电子邮件设置超时。我正在使用Django 1.7.3和python v2.7.6。我的方法是遵循here中的django文档。因此,我要做的是通过在django / core / mail / backends文件夹中使用以下代码创建一个名为myemailbackend.py的文件来创建自定义电子邮件后端:

    from django.core.mail.backends import smtp

    class MyEmailBackend(smtp.EmailBackend):

    def __init__(self, *args, **kwargs):

    kwargs.setdefault('timeout', 3) #this is 3 secs, i believe.

    super(MyEmailBackend, self).__init__(*args, **kwargs)

    之后,在我的settings.py中,我设置了EMAIL_BACKEND:

    # Email setup

    EMAIL_BACKEND = 'django.core.mail.backends.base.myemailbackend'

    EMAIL_USE_TLS = True

    EMAIL_HOST = 'smtp.gmail.com'

    EMAIL_HOST_USER = 'xxxx@gmail.com'

    EMAIL_HOST_PASSWORD = 'xxx'

    EMAIL_PORT = 587

    # EMAIL_TIMEOUT = 3 # 3 sec, this would be great but i notice that this is not possible since that backend stmp.py doesn't expect to get "EMAIL_TIMEOUT" var.

    在我运行服务器后,我注意到这似乎不起作用,我注意到myemailbackend.py没有被编译。

    我想念什么?毕竟,如何设置发送电子邮件的超时时间?

    python大神给出的解决方案

    如果在文件夹myemailbackend.py中将其命名为django/core/mail/backends,则您的设置为

    EMAIL_BACKEND = 'django.core.mail.backends.myemailbackend.MyEmailBackend'

    话虽如此,将您的代码放入Django文件夹是一个坏主意。最好将其放置在应用程序中(例如my_app/mymailbackend.py),以免受到Django重新安装和/或升级的影响。

    展开全文
  • 工作中如果每天需要发送日报啊,或者需要把相同的电子邮件发给不同顾客啊,定时发送某些提示邮件啊。学会这个就不会担心会忘记发了。下面的代码本人测试过没问题。#导入smtplib库import smtplib#导入我们需要的email...

    本文介绍下如何用smtplib发送email。工作中如果每天需要发送日报啊,或者需要把相同的电子邮件发给不同顾客啊,定时发送某些提示邮件啊。学会这个就不会担心会忘记发了。

    下面的代码本人测试过没问题。

    #导入smtplib库import smtplib#导入我们需要的email模块from email.message import EmailMessagePASS_WORD = 'xxxxxxxx' #这里的password是qq游戏的授权码,可以百度下如何得到SMTP_SERVER = 'smtp.qq.com'POP_SERVER = 'pop.qq.com'receiver = 'laowang@qq.com' #接收email的邮箱地址sender = 'gebi@qq.com' #发送email的邮箱地址textfile = r'Report of Testing' #保存有要发送在邮件中的内容#打开该文件.with open(textfile,'r', encoding='utf-8') as fp: #创建一个email消息 msg = EmailMessage() msg.set_content(fp.read()) #添加邮件的内容msg['Subject'] = 'The contents of %s' % textfile #邮件标题msg['From'] = sendermsg['To'] = receiver# 通过SMTP server发送邮件.s = smtplib.SMTP(SMTP_SERVER, 25)s.login(sender, PASS_WORD) #通过授权码登陆s.send_message(msg) #发送消息s.quit() #推出print("Send successed!")

    如果你有一组客户名单,比如保存在excel文件中,那么你可以将该名单读出来,然后用该程序给相应的客户发送邮件。

    或者你想在某个时间点发送一份邮件,那么可以设置定时任务,去发送这份邮件。

    如果有相关需求需要帮助,可以私信,我可以帮助写代码哦

    展开全文
  • laravel5.5内置了通过发送邮件重置密码的功能,但是这个邮件在单位时间内的可以发送的次数是没有限制的。emm 这样太容易被人搞了 参考文档 laravel5.5 login(POST)没有使用middleware throttle却实现了限定访问...
  • 然而,项目的负责人试着发送邮件却受到邮件发送失败的消息,只是因为附件太大。不仅仅像这位负责人这样,项目组的其他成员也需要发送比这位负责人发送的附件更大的文件。因此,只好向IT发出紧急求救电话。如果您是IT...
  • 通过字段邮件未读数($unReadNum)和邮件的最后发送时间($lastSendTime)进行条件判断,语言是PHP的 默认每天发送,三次未打开, 每三天发一次,再三次未打开 每七天发一次,再三次未打开 每月发一次,再三次...
  • Oralce UTL_SMTP发送邮件的发送时间处理 Oracle 可以使用UTL_SMTP包发送电子邮件,具体的例子可以参考Oracle的官方文档。 发送邮件中遇到的问题也很多,如中文问题,附件问题等; 遇到一个邮件发送日期与实际相差...
  • php 邮件发送问题解决

    2020-12-18 21:30:46
    这段时间修改了一下我们系统的登陆功能,为了更加安全,增加了发送邮件验证功能。当用户登陆的时候判断登陆ip是否是之前登陆过的,如果不是的话,需要向邮箱里发送验证码,然后把收到的验证码输入再登陆,如果验证码...
  • 修改discuz 用户注册Email重新发送验证邮件时间间隔,默认是24小时,注意在修改配置文件的时候记得将文件copy一份做个备份,可以在出错后恢复。 一、修改配置文件 (文件路径为 upload/member.php ) 打开member...
  • 1、先分别查找MYSQL与PHP... 2、修改php/php.ini,找到[Date] ; Defines the default timezone used by the date functions ;date.timezone =  ...date.timezone = 修改为date.timezone = Asia/shanghai 注意:前面的
  • php 邮件发送问题

    2014-03-22 13:54:40
    这段时间修改了一下我们系统的登陆功能,为了更加安全,增加了发送邮件验证功能。当用户登陆的时候判断登陆ip是否是之前登陆过的,如果不是的话,需要向邮箱里发送验证码,然后把收到的验证码输入再登陆,如果验证码...
  • 使用场景当使用者需要群发内容框架一致而只有少许内容不同的邮件时,会因为频繁地修改琐碎的细节而浪费大量时间,这样一来一个可供配置和扩展的自动邮件程序就十分有必要。比如说我作为课程助教需要发送邮件给每个...
  • 集步邮件发送系统

    2004-08-19 15:37:09
    独立的弹出式系统窗口,可根据需要将它设置为居中和随意;可统计和限制访问者在多少时间内最多能发送几次邮件(以免浪费系统资源);文件体积小功能全,界面干净;可根据自己的需要修改...邮件发送成功后自动关闭系统
  • 选择每次发送邮件数和每次相隔的发送时间 默认登陆账号和密码:admin 3.0版本改进说明: 1.去除了登陆模式 2.MDB导入模式增加了非邮箱地址辨别 3.增加了文本模式导入 4.修改了无邮箱列表出错问题 5.普通发送模式...
  • 在我们运行完整个项目后,已经生成了 测试报告,一般自动化会在本地或者公司服务器上运行,那如何获取自动化测试的运行结果呢,此时就需要把测试结果以邮件的形式发送到邮箱,这样就可以在测试完成的第一时间知道...
  • 独立的弹出式系统窗口,可根据需要将它设置为居中和随意;可统计和限制访问者在多少时间内最多能发送几次邮件(以免浪费系统资源);文件体积小功能全,界面干净;可根据自己的需要修改...邮件发送成功后自动关闭系统
  • C# 邮件发送接收

    2006-08-09 15:59:00
    前一阵子公司的一个项目有发送接收邮件的需求,发送很简单,接收pop3的编码很乱,去网上找了一些开源的,大多都是国外的,对中文支持不太好,最后找了一个外国的产品,挺不错,破解了之后进行了一些修改,用了一段...
  • 网上帮查询了下有人遇到这个问题但是没决绝,晚上看了下ecshop的代码,发现代码里面用gmdate这个就是直接生成的格林尼治时间了,修改地方如下: includs/lib_base.php中搜索send_mail函数,找到“使用smtp服务发送...
  • 使用场景当使用者需要群发内容框架一致而只有少许内容不同的邮件时,会因为频繁地修改琐碎的细节而浪费大量时间,这样一来一个可供配置和扩展的自动邮件程序就十分有必要。比如说我作为课程助教需要发送邮件给每个...
  • Python_定时自动发送邮件

    千次阅读 2019-06-17 03:01:39
    虽然主流邮箱都可以定时发送邮件,但还是尝试用python写了一个定时发送邮件的脚本,设定好一个发送时间后,可以按下面步骤将文件通过QQ邮箱发送出去。 文件的最后修改及最后访问时间随机调整为发邮件前20~25分钟; ...
  • 起始于对现有工作的内容进行部分重复工作的释放,花费了两周的时间调试了完全可能自己吼得住看得懂能实现目标的代码,如标题所说,本代码主要用户带附件的电子邮件发送;对于代码大家只需要修改下文件路径,邮箱...
  • 在我们运行完整个项目后,已经生成了 测试报告,一般自动化会在本地或者公司服务器上运行,那如何获取自动化测试的运行结果呢,此时就需要把测试结果以邮件的形式发送到邮箱,这样就可以在测试完成的第一时间知道...
  • Linux 内网发送邮件

    2020-07-28 16:23:39
    有些问题需要第一时间邮件报警出来,否则漏掉之后比较麻烦。 需求: GP外部表有一个location 选项,这个选项是一个ip地址后面跟一个文件名,这个文件和外部表一 一对应。现需要监控外部表的location 是否为外部...
  • 本项目是基于nodejs开发,实现的功能是,什么值得买自动签到,自动...目前规则:每天6:10 执行签到和评论功能,17:30执行签到结果邮件发送功能,执行间隔为随机时间,可自行修改。 由于值得买,每天前三条,发送评...
  • PHP发送邮件代码,你需要做的只是下载下来修改下你的smtp信息就可以发送了,已经测试过了。我用半小时的时间来整理打包然后用虚拟的5分给你下载并使用,且开源免费。你还犹豫个鸟?
  • 前一段时间实现了一个python脚本发送邮件的功能,该脚本是借用smtp服务器发送邮件邮件以附件的形式发出,如果要添加正文,修改添加即可。 #!/usr/bin/env python #coding: utf-8 import smtplib, re, sys, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,303
精华内容 521
关键字:

修改邮件发送时间