2016-08-09 8 views
2

でメールを送信する方法を理解しようとしています。mime-mail-sesパッケージを使用しています。私は以下のコードを試してみYesod wikiからrenderSendMailSES例を使用 - 私はmail身体の検証でエラーをデバッグするには、ここrenderMailを使用しています:mime-mailパッケージの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のローカルパッチされたコピーを持っていましたが、それはここでの犯人と思われます。私は修正版(0.4.31)を持っていたリリース版でスタック上にhttp-clientを指すようにhttp-clientを変更して修正しました。今、それは正常に動作します。

関連する問題