Tag: 哈斯克尔

在Haskell中使用简单邮件抛出损坏的pipe道错误

我有一年前写过的Haskell程序,运行良好,直到几个月前。 什么改变了? 该程序使用SpreadsheetML(我是贡献者)构build一系列Excel报告文件,并以附件的forms通过电子邮件发送给用户列表。 该程序由逗号分隔的文本文件控制,每行代表一个报告,并包含报告标题,数据库关键字列表(用|分隔)以及收件人电子邮件地址列表(也用|分隔)。 三个月前,这个文件进行了重组,以改变生成的报告和分发给谁。 从那以后,文件中的一行将会破坏pipe道错误的程序。 该程序的错误信息是: CreateExcel: fd:7: hPutBuf: resource vanished (Broken pipe) 该程序接受一个命令行参数来控制是否发送报告。 如果此参数为False,则不会调用sendReport方法(以下),也不会报告错误。 因此,我相信在sendReport调用之前的一切都是可靠的。 这是产生错误的代码: makeAddress :: String -> Address makeAddress addr = Address Nothing (T.pack addr) sendReport :: String -> [String] -> String -> IO () sendReport file to title = do simplemail <- simpleMail (Address Nothing (T.pack "")) (Address Nothing […]