我正在使用 Elixir Bamboo发送电子邮件
我有一些二进制内容,想附加到电子邮件中
简单的方法是:
content = <<binary-content>>
File.write("/tmp/myfile.pdf", content )
data = new_email()
|> to(email)
|> from( "email.com")
|> subject("subject")
|> put_attachment("/tmp/myfile.pdf")
|> put_header("Reply-To", "email.com")
|> html_body(html_body)
File.rm("/tmp/myfile.pdf", content )
Run Code Online (Sandbox Code Playgroud)
有没有办法附加文件而不将其保存在本地?就像是:
content = <<binary-content>>
data = new_email()
|> to(email)
|> from( "email.com")
|> subject("subject")
|> put_attachment(content)
|> put_header("Reply-To", "email.com")
|> html_body(html_body)
Run Code Online (Sandbox Code Playgroud)
你打赌。它是在 1.0 版本之前包含的。从本 PR开始,您可以将数据直接附加到结构中。
您只需向 put_attachment 传递一个 Bamboo Attachment 结构并填充数据字段,因此:
content = <<binary-content>>
data = new_email()
|> to(email)
|> from( "email.com")
|> subject("subject")
|> put_attachment(%Bamboo.Attachment{filename: "filename.example", data: content})
|> put_header("Reply-To", "email.com")
|> html_body(html_body)
Run Code Online (Sandbox Code Playgroud)
这是有关该功能的线程:https://github.com/thoughtbot/bamboo/issues/286