【发布时间】:2019-11-14 01:22:02
【问题描述】:
我关注https://www.udemy.com/course/the-complete-ruby-on-rails-developer-course/,虽然我可以发送一封关于开发的电子邮件,但在 Heroku 上是另一回事。在使用 devise 注册时,heroku 抛出一个 535 错误,告诉我我的用户名/密码错误。我检查了我的配置变量,并且确实设置了 sendgrid_username 和密码。我运行了 heroku run printenv,结果如下。
RAILS_SERVE_STATIC_FILES=enabled
DATABASE_URL=postgres://
GEM_PATH=/app/vendor/bundle/ruby/2.5.0:
PORT=18178
RAILS_ENV=production
RAILS_LOG_TO_STDOUT=enabled
COLUMNS=80
TERM=xterm-256color
RACK_ENV=production
SHLVL=1
SENDGRID_PASSWORD=SG.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
SENDGRID_USERNAME=my-api-key
MALLOC_ARENA_MAX=2
我也用这个初始化器
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
address: 'smtp.sendgrid.net',
port: '587',
authentication: :plain,
user_name: ENV['SENDGRID_USERNAME'],
password: ENV['SENDGRID_PASSWORD'],
domain: 'my-app.herokuapp.com',
enable_starttls_auto: true
}
我想以此作为垫脚石,自学如何设置基本联系表单,但现在我不太明白为什么没有设置密码和用户名。
我已经看这个太久了,需要一个新的眼睛(和睡眠)。如果您需要更多代码,请告诉我。
更新:我开始认为 Sendgrid 的结局有些可疑。我稍后会联系支持人员,并尝试深入了解此问题并稍后更新问题所在。
【问题讨论】:
-
假设您没有隐藏域以保护隐私......我相信您的域需要设置为您的实际 heroku 域(不仅仅是 heroku.com)。另外,您的 SENDGRID_USERNAME 和 PASSWORD 的格式是什么?对于用户名和字母数字密码,它应该类似于
app123456789@heroku.com。另外(不确定这是否重要),但大多数示例将端口号作为整数,而不是字符串。 -
感谢您的回复。是的,我的初始化程序中的“heroku.com”实际上是“my-website.heroku.com”,我将编辑 OP 以消除混淆。至于用户名和密码,视频中的讲师向我们展示了我们在 sendgrid 中为用户名生成的 API 密钥的名称以及创建密钥后出现的一次性密码。那是对的吗?我确实将 heroku 中的用户名编辑为我的应用程序的名称,只是为了试一试,但这也是不行的。
-
另外,对于端口号,我不知道如何更改它。从技术上讲,因为我几个月前在同一台计算机上做了这个项目并且它工作(虽然这里的假人显然忘记了一些东西)我不确定从那时起它会如何改变。
-
而且我还把密码改成了API Key id。还是不行。
标签: ruby-on-rails devise sendgrid