2016-08-09 5 views
2

Я пытаюсь выяснить, как отправить сообщение электронной почты через AWS SES с использованием mime-mail-ses пакета. Я использовал renderSendMailSES пример из Yesod wiki попробовать этот код - я использую renderMail здесь, чтобы отладить ошибки в проверке mail тела:renderParts error in mime-mail package

*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 

Это вполне head- поскольку вышеупомянутый пример ничем не отличается от Yesod Wiki. Я не могу добавить вложение либо из-за вышеуказанной ошибки. Вложение, если я не ошибаюсь, будет выглядеть следующим образом для mailParts:

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

Я посмотрел в код, который вызывает ошибку, но не могу понять, что случилось.

Я буду очень благодарен указателям, чтобы устранить эту ошибку.

+0

Вы имеете в виду пакет «mime-mail-ses», правильно? –

+0

@RowanBlush, да, правильно. Починил это. – Sal

+0

Хм ... Я не могу воспроизвести! [Суть] (https://gist.github.com/e1876b24d0e856dacd2c1dbe6f8161b5). Получаете ли вы ту же ошибку, если вы загружаете мои parts.hs в GHCi и пытаетесь показать 'rendered'? Если это так, я бы предположил, что это должна быть проблема с версией ... –

ответ

2

Это проблема с версией. У меня была локальная исправленная копия http-client из github (чтобы добавить некоторую проверку потоковой передачи, которая еще не была в stackage), которая, кажется, является преступником здесь. Я исправил это, изменив http-client, чтобы указать на http-client на stackage с версией выпуска, в которой были мои исправления (0.4.31). Теперь он отлично работает.