2016-08-09 27 views
2

我想弄清楚如何使用mime-mail-ses包通過AWS SES發送電子郵件。我用renderSendMailSES例如,從Yesod wiki試試下面的代碼 - 我使用renderMail這裏調試mail體驗證錯誤:MIME郵件包中的renderParts錯誤

*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 "[email protected]") { 
mailTo = [Address Nothing "[email protected]"] , mailHeaders = [ ("Subject", 
"Testing email address")], mailParts = [[textPart, htmlPart]]} 

我得到這個錯誤:

*** Exception: renderParts called with null parts 

這是相當頭戴式因爲上述示例與Yesod Wiki沒有任何區別。由於上述錯誤,我無法添加附件。附件,如果我沒有記錯,看起來像這樣爲mailParts

mailParts = [[textPart,htmlPart],[attachment1]] 

我在這導致了錯誤,但無法弄清楚什麼是錯的代碼看起來。

我非常感謝指針來解決這個錯誤。

+0

你的意思是「mime-mail-ses」包,對嗎? –

+0

@RowanBlush,是的,對。修復。 – Sal

+0

嗯......我無法複製! [要旨](https://gist.github.com/e1876b24d0e856dacd2c1dbe6f8161b5)。如果你在GHCi中加載我的parts.hs並嘗試顯示'rendered',你會得到同樣的錯誤嗎?如果是這樣,我會猜測它必須是一個版本問題... –

回答

2

這是版本控制問題。我有一個來自github的http-client的本地補丁副本(添加一些流驗證,但尚未在stackage之間),這似乎是這裏的罪魁禍首。我通過更改HTTP客戶端以使用帶有我的修補程序的發行版(0.4.31)指向http-client進行修復。現在,它工作正常。