mime-mail包中的renderParts错误

时间:2016-08-09 15:52:58

标签: haskell yesod

我正在尝试弄清楚如何使用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]]

我查看了导致错误的代码,但无法弄清楚出了什么问题。

我非常感谢指针解决此错误。

1 个答案:

答案 0 :(得分:2)

这是一个版本控制问题。我从github获得了http-client的本地修补副本(以添加一些尚未在stackage中进行的流式验证),这似乎是这里的罪魁祸首。我通过将http-client更改为指向堆栈上的http-client并使用具有我的修复程序的发布版本(0.4.31)来修复它。现在,它运作正常。