首页 > 其他分享 >elixir mjml_nif 试用

elixir mjml_nif 试用

时间:2023-12-28 20:47:59浏览次数:33  
标签:body https nif mjml elixir mail rustler

mjml_nif 是使用rustler 包装的mrml 基于了erlang 的nif 接口实现的elixir 模块,同时为了方便预编译nif的使用,使用了
rustler_precompiled,以下是一个简单的试用

项目试用

  • 添加依赖
 
defp deps do
    [
      {:mjml, "~> 3.0"}
    ]
end
  • 代码集成
    lib/mail/rong.mail.ex
 
defmodule Rong.Mail do
  def mail(_to,_subject,body) do
    {:ok, html} = Mjml.to_html(body)
    html
  end
end

lib/rong.ex

def mail(to,subject,body) do
    Mail.mail(to,subject,"<mjml><mj-body><mj-section><mj-column><mj-text>#{body}</mj-text></mj-column></mj-section></mj-body></mjml>")
end
  • 运行效果
iex -S mix 
Rong.mail(:dalongm,:demo,"this is a demo"

效果

说明

基于mrml 的周边包装目前也有几个,因为使用了rust,实际上我们可以将此模块扩展到其他编程语言中

参考资料

https://github.com/adoptoposs/mjml_nif
https://github.com/philss/rustler_precompiled
https://github.com/rusterlium/rustler
https://github.com/jdrouet/mrml

标签:body,https,nif,mjml,elixir,mail,rustler
From: https://www.cnblogs.com/rongfengliang/p/17933519.html

相关文章

  • mrml mjml 的rust 实现
    mrml是mjml的rust实现,同时还提供了webassembly的支持,当然比较强大的是mrml同时也实现了pythonbindingwebassembly使用代码const{Engine}=require("mrml");constengine=newEngine();constresult=engine.toHtml("<mjml><mj-body>HelloWor......
  • webpack概念(依赖图、target、manifest)
    依赖图(dependencygraph)依赖的东西可以是代码,也可以是非代码(images和web字体) 从 入口 开始,webpack会递归的构建一个 依赖关系图,这个依赖图包含着应用程序中所需的每个模块,然后将所有模块打包为少量的 bundle ——通常只有一个——可由浏览器加载。对于 HTTP/2 来......
  • rebar3 引用本地elixir 模块
    前边简单说过基于rebar_mix使用elixir模块,但是使用的模块是三方的,如果时候我们可以需要使用自己的就可以使用本地git项目,或者搭建自己的私服git,以下是一个简单使用项目准备本地elixirmix项目一个基于mixcli创建的项目,同时进行gitinit mixnewlogingit......
  • rebar3 集成elixir 模块
    社区包含了一个rebar3的elixirmix插件,可以方便rebar使用elixir模块参考使用rebar.config配置{erl_opts,[debug_info]}.{deps,[%添加引用{decimal,"2.0.0"}]}. {shell,[{apps,[basic]}]}. %添加插件 {plugins,[......
  • Cisco Unified Communications Manager (CallManager) 15.0 - 统一通信与协作
    CiscoUnifiedCommunicationsManager(CallManager)15.0-统一通信与协作思科统一通信管理器(CallManager)请访问原文链接:https://sysin.org/blog/cisco-ucm-15/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org思科统一通信管理器企业统一通信和协作借助思科......
  • 文件上传漏洞(三)Cknife
    Cknife是一款基于Python的渗tou测试工具,主要用于绕过Web应用程序中的安全防护机制,例如安全狗、360、云锁等。它可以通过自定义参数配置,生成各种不同的绕狗脚本,从而达到绕过安全防护的目的。Cknife具有使用简单、功能强大、支持多种编程语言等特点,是渗tou测试人员必备的工具之一。ck......
  • 10.2k star,推荐一款开源流量监控工具,sniffnet
    1简介如果你正在寻找一种快速简便的方法来监控你的网络流量,这个用Rust编写的跨平台应用程序sniffnet可以试试sniffnet是一种网络监控工具,可帮助您轻松跟踪互联网流量。无论你是想收集统计数据,还是需要更深入地检查网络中发生了什么,这个应用都能让你得到保障。2安装github......
  • Should be the workers need to dress uniform for work?
    Theneedforworkerstodressinuniformsforworkdependsonthespecificindustry,company,andjobrole.Insomecases,uniformsmayberequiredforsafetyreasons,topromoteaprofessionalimage,ortomaintainaconsistentbrandidentity.However,i......
  • uniffi-rs rust 多语言bindings 生成工具
    uniffi-rs是基于webidl描述定义,然后生成不同语言bindings的工具,此工具是在学习pyo3的maturin工具看到的,整理记录下参考玩法 目前支持的语言官方支持的包含了Kotlin,Swift,Python,Ruby当然还有不少社区的实现,比如支持C#以及golang说明以上就是一个简单的记录,后边尝试......
  • Chrome扩展的核心:manifest 文件(下)
    大家好,我是dom哥。这是我关于Chrome扩展开发的系列文章,感兴趣的可以点个小星星。在上篇和中篇中已经完成了对manifest文件中以下字段的解释:"manifest_version""name""version""description""icons""content_scripts""background""perm......