小编kai*_*inC的帖子

使用 Google API 发送邮件时出错 - “'raw' RFC822 有效负载消息字符串或通过 /upload/* URL 上传消息需要”

我正在尝试通过 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 有什么问题让它期待一个,如果有,我该如何解决?

python-3.x google-api-python-client gmail-api

5
推荐指数
2
解决办法
2055
查看次数

错误处理只工作一次

我有一个非常简单的 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 感到平静,或者为循环添加额外的条件

excel vba

3
推荐指数
1
解决办法
8049
查看次数

VBA没有为可选参数指定值

我想使用类似的语句添加到集合中

myCollection.Add myItem, After:=Iif(myCollection.Count > 0, myCollection.Count, vbNull)
Run Code Online (Sandbox Code Playgroud)

换句话说,我想决定是否要指定参数"After",如果我不这样做,那么我想在它的位置传递一个非值值.

它比为每个场景单独调用要清理得多.

这可能在VBA中吗?

vba

0
推荐指数
2
解决办法
1190
查看次数