我正在尝试通过 Python 中的 Google API 发送消息,并尝试运行几乎直接从Google 示例页面获取的示例。
def CreateMessage(sender, to, subject, message_text):
message = MIMEText(message_text)
message['to'] = to
message['from'] = sender
message['subject'] = subject
return {'raw': base64.urlsafe_b64encode(message.as_string().replace('message','resource').encode('ascii'))}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试发送它时
message = CreateMessage(sender, to, subject, message_text)
message = service.users().messages().send(body=list(message),userId='me').execute()
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:“'raw' RFC822 有效负载消息字符串或通过 /upload/* URL 上传消息需要”
从其他帖子看来,谷歌似乎在期待一个附件。MIMEText 有什么问题让它期待一个,如果有,我该如何解决?
我有一个非常简单的 VBA 代码,它应该尝试打开一个不存在的文件,将我发送到错误处理程序,然后在无限循环中(有意地)返回到我的代码。
但是,编译器仅在第一次捕获错误,然后在第二次通过时中断。
我已经尝试了 On Error 语句的每一种组合,以便在第二次通过时将其发回,但似乎没有任何效果。这是代码:
Sub TestError()
On Error GoTo errError
lblError:
On Error GoTo errError
'Code that should raise an error and send to errError
Excel.Application.Workbooks.Open ("lakdfjldkj")
Exit Sub
errError:
MsgBox "Code didn't break"
GoTo lblError
End Sub
Run Code Online (Sandbox Code Playgroud)
有什么我遗漏的吗,或者这是一个错误?
不要测试这个,除非你对必须杀死 Excel 感到平静,或者为循环添加额外的条件
我想使用类似的语句添加到集合中
myCollection.Add myItem, After:=Iif(myCollection.Count > 0, myCollection.Count, vbNull)
Run Code Online (Sandbox Code Playgroud)
换句话说,我想决定是否要指定参数"After",如果我不这样做,那么我想在它的位置传递一个非值值.
它比为每个场景单独调用要清理得多.
这可能在VBA中吗?