Elixir - 如何在电子邮件中将图像嵌入到html中

时间:2017-10-03 20:09:54

标签: html email elixir

我正在尝试在发送电子邮件时将图像嵌入到html中。

我的图片(logo.png)和html(welcome.html.eex)位于priv

可悲的是,我收到的电子邮件中没有图片。

这是我收到的电子邮件:

email received

当我检查元素时,我得到:(没有src=" ... "

<img width="212px" height="26px" align="bottom">

虽然 - 当我在本地预览时,我的html(来自my-html.html - 请参阅我的代码)似乎没问题:

local html

这是我的welcome.html.eex

<p>
   <span>
   <strong>Bem-Vindo hii</strong> à 
   <img
      src="<%=  ~s(data:image/png;base64,) <> Base.encode64(File.read! (Path.join("#{:code.priv_dir(:my_app)}", "logo.png"))) %>" 
      width="212px" height="26px" align="bottom"/>
   </span>
</p>

这是我的代码,使用bamboo发送电子邮件添加html:

  import Bamboo.Email

  def send_verify_email() do
      File.write "my-html.html", get_html() # writing the html localy - to verify..
      new_email()
          |> to("foo@bar.com")
          |> from(@from_addr)
          |> subject("Welcome")
          |> html_body(get_html())
          |> Mailer.deliver_later
    end
  end

  def get_html() do
      EEx.eval_file(Path.join("#{:code.priv_dir(:my_app)}", "welcome.html.eex"), [tok: "123"])

  end
我做错了什么? 如何在电子邮件html上附加base 64图像?

修改

我也尝试按路径添加图片

welcome.html.eex

 <img src="<%= Path.join("#{:code.priv_dir(:my_app)}", "logo.png") %>"

但仍然得到相同的结果 - 本地html似乎没问题,但在电子邮件html上是:

email by bath

当我检查时,我得到了

<img src="https://ci4.googleusercontent.com/proxy/4eMU8Te6MM215JLJ5gm3Z9jnC4hytOkDeF4ldFGb1pC17GDhtZphCtH623p1ZwNYZxBfAatQtlX_V9MKALbOE0jIzxVXJ43tZLeA5hUT7tjs7FEz3_PVoUQ5Ih7w0rvuRtLy7pVqR9UoU5TBF5E=s0-d-e1-ft#http:///home/dina/Documents/WK/my_umbrela_app/_build/dev/lib/my_app/priv/logo.png" width="212px" height="26px" align="bottom" class="CToWUd">

所以我确实有src=""但似乎已经破了...... :(

0 个答案:

没有答案