我正在尝试使用Gmail API和以下功能发送各种大小的电子邮件。
通常,这可以正常工作,但是对于超过10MB的附件(这种情况很少见,但会发生)Errno 10053
,我 认为这
是因为在发送包含大型附件的邮件时超时。
是否有办法解决这个问题,例如指定大小或增加超时限制?Gmail API文档中提到了尺寸,但我一直在努力了解如何在Python中使用尺寸,甚至是否有帮助。
def CreateMessageWithAttachment(sender, to, cc, subject,
message_text, file_dir, filename):
"""Create a message for an email.
Args:
sender: Email address of the sender.
to: Email address of the receiver.
subject: The subject of the email message.
message_text: The text of the email message.
file_dir: The directory containing the file to be attached.
filename: The name of the file to be attached.
Returns:
An object containing a base64url encoded email object.
"""
message = MIMEMultipart()
message['to'] = to
if cc != None:
message['cc'] = cc
message['from'] = sender
message['subject'] = subject
msg = MIMEText(message_text)
message.attach(msg)
path = os.path.join(file_dir, filename)
content_type, encoding = mimetypes.guess_type(path)
QCoreApplication.processEvents()
if content_type is None or encoding is not None:
content_type = 'application/octet-stream'
main_type, sub_type = content_type.split('/', 1)
if main_type == 'text':
fp = open(path, 'rb')
msg = MIMEText(fp.read(), _subtype=sub_type)
fp.close()
elif main_type == 'image':
fp = open(path, 'rb')
msg = MIMEImage(fp.read(), _subtype=sub_type)
fp.close()
elif main_type == 'audio':
fp = open(path, 'rb')
msg = MIMEAudio(fp.read(), _subtype=sub_type)
fp.close()
else:
fp = open(path, 'rb')
msg = MIMEBase(main_type, sub_type)
msg.set_payload(fp.read())
fp.close()
QCoreApplication.processEvents()
msg.add_header('Content-Disposition', 'attachment', filename=filename)
message.attach(msg)
return {'raw': base64.urlsafe_b64encode(message.as_string())}
def SendMessage(service, user_id, message, size):
"""Send an email message.
Args:
service: Authorized Gmail API service instance.
user_id: User's email address. The special value "me"
can be used to indicate the authenticated user.
message: Message to be sent.
Returns:
Sent Message.
"""
try:
message = (service.users().messages().send(userId=user_id, body=message)
.execute())
QCoreApplication.processEvents()
return message
except errors.HttpError, error:
pass
您需要对大文件使用MEDIA /
upload选项。然后,您可以发送Gmail允许的最大电子邮件数量。有关如何使用/上传的文档:https
:
//developers.google.com/gmail/api/v1/reference/users/messages/send
10MB的限制没有充分记录。
问题内容: 我正在尝试将JSON发送到elasticSearch。我尝试使用Postman和SOAPUI数据是 我回来了以下错误 但是当我发布单个JSON数组即 然后工作正常。我是ElasticSearch的新手,所以不确定出什么问题。 问题答案: 首先尝试使用大括号,然后为数组命名。尝试一下,看看是否可行。 例如: 可能有效,因为它包含在对象内部。 更好 在尝试时,我发现它可以将数组隐式转换为J
我需要将邮件从我的gmail帐户发送到另一个帐户。我使用了以下代码。 但我得到的错误如下。。。javax。邮政MessaginException:无法连接到SMTP主机:SMTP。gmail。com,端口:25 我该怎么解决这个问题。你能帮我吗?
这是我发送邮件的代码 我在tomcat的lib文件夹中添加了和。我将eclipse与Tomcat7、JRE7和Struts2一起使用。通过Java发送邮件时出现以下控制台错误:
我在使用discord机器人添加此发送消息时遇到了一个奇怪的错误。我在学习Scratch教程 结果:- `(节点:8480)未经处理的PromisejectionWarning:DiscordAPIError:在C:\Users\Deepanshu\node\u modules\discord处缺少访问权限。js\src\client\rest\RequestHandlers\Sequential
我有一行代码: 它接受一个变量,其类型应为float。当我使用type()测试变量类型时,它返回: 但是我一直收到一个错误,上面写着“/: str和int不支持的操作数类型”。
我使用PHP CURL发送POSTFIELD,但我得到错误415不支持的媒体类型这是我的代码: 我收到错误信息 HTTP/1.1 415不支持的媒体类型日期:周三,01月2018 18:19:00格林尼治标准时间服务器:Apache缓存控制:无缓存缓存控制:无存储Pragma:无缓存内容长度: 903过期:周四,01月1970 00:00:00格林尼治标准时间设置-Cookie: WMONID=R