我正在尝试弄清楚如何使用mime-mail-ses
包通过AWS SES
发送电子邮件。我使用Yesod wiki
中的renderSendMailSES
示例尝试下面的代码 - 我在这里使用renderMail
来调试mail
正文验证中的错误:
*Main> let textPart = Part {partType = "text/plain; charset=utf-8",
partEncoding = None, partFilename = Nothing, partHeaders = [], partContent = "Testing"}
*Main> let htmlPart = Part { partType = "text/html; charset=utf-8",
partEncoding = None, partFilename = Nothing, partHeaders = [], partContent = "Testing"}
*Main> renderMail' (emptyMail $ Address Nothing "noreply@example.com") {
mailTo = [Address Nothing "test@example.com"] , mailHeaders = [ ("Subject",
"Testing email address")], mailParts = [[textPart, htmlPart]]}
我收到此错误:
*** Exception: renderParts called with null parts
这是令人头疼的事,因为上面的例子似乎与Yesod Wiki
没什么不同。由于上述错误,我无法添加附件。如果我没有弄错的附件,mailParts
mailParts = [[textPart,htmlPart],[attachment1]]
我查看了导致错误的代码,但无法弄清楚出了什么问题。
我非常感谢指针解决此错误。
答案 0 :(得分:2)
这是一个版本控制问题。我从github获得了http-client
的本地修补副本(以添加一些尚未在stackage
中进行的流式验证),这似乎是这里的罪魁祸首。我通过将http-client更改为指向堆栈上的http-client
并使用具有我的修复程序的发布版本(0.4.31
)来修复它。现在,它运作正常。