【发布时间】:2017-07-04 14:21:57
【问题描述】:
我创建了一个 Phoenix 应用程序,然后添加了用于发送电子邮件的竹模块,今天下午我成功使用 Elixir 发送了我的第一封电子邮件,但我不得不硬编码 用户名 和 密码 进入config.exs。
我阅读了this article 并在我的 phoenix 项目的根目录中设置了一个 .env 文件,并且我尝试在 config.exs 文件中使用以下语句加载环境变量。
username: System.get_env("SMTP_USERNAME"),
password: System.get_env("SMTP_PASSWORD"),
但是,电子邮件没有发送,并且竹子给了我一个相当神秘的错误消息。
我正在使用终端中的以下命令构建 phoenix 应用程序,
iex -S mix
我在 iex 会话中使用类似于以下命令的命令手动发送电子邮件,
CrjApi.Email.hello_text_email("me@example.com") |> CrjApi.Mailer.deliver_now
但仅当用户名/密码硬编码到config.exs 文件中时才会发送电子邮件。如何使用我设置的.env 文件,这样我就不必将用户名/密码硬编码到config.exs 中?
注意:我正在运行 OS X,并使用 fish shell。
【问题讨论】:
-
如果你进入
iex并输入System.get_env("SMTP_USERNAME"),你得到期望值了吗?对密码执行相同操作。 -
@JustinWood 你建议的命令返回
nil。感谢您为我指明正确的方向;) -
如果你严格按照每一步,这篇文章是有效的。
source .env还是有错别字。