2016-08-09 7 views
2

을 통해 mime-mail-ses 패키지를 사용하여 전자 메일 메시지를 보내는 방법을 알아 내려고합니다. 나는 아래의 코드를 시도 Yesod wiki에서 renderSendMailSES 예를 사용 - 내가 mail 몸 유효성 검사에서 오류 디버깅하려면 여기를 renderMail을 사용하고 있습니다 : 이것은 아주 머리 -이다mime-mail 패키지의 renderParts 오류

*** Exception: renderParts called with null parts 

:이 오류가

*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]]} 

을 위의 예는 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에 없었던 일부 스트리밍 유효성 검사를 추가하기 위해) 로컬 패치 된 사본을 가지고 있는데, 이는 범인 인 것 같습니다. 내 수정 (0.4.31)을 가진 릴리스 버전과 함께 stackage에 http-client을 가리 키도록 http-client를 변경하여 수정했습니다. 자, 잘 작동합니다.