DEV Community

David Paluy
David Paluy

Posted on

3 2

Customizable Email sender address with Devise

When installing the devise gem in your Rails application, you will find the following:

Devise.setup do |config|
  # ...
  config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com'
  # ...
end
Enter fullscreen mode Exit fullscreen mode

You can set static email, for example:

Devise.setup do |config|
  # ...
  config.mailer_sender = 'Acme Team <team@acme.com>'
  # ...
end
Enter fullscreen mode Exit fullscreen mode

But if you need to allow your back-office team member periodically to customize this parameter, how would you do this?

I recommend using rails-settings gem.

class Setting < RailsSettings::Base
  field :email_from, type: :string, default: 'Acme Team <team@acme.com>'
end
Enter fullscreen mode Exit fullscreen mode

Now, if you try adding this Setting.email_from to devise.rb initializer, you will get an error: You cannot use settings before Rails initialize. (RuntimeError).

To solve this problem, do the following:

Devise.setup do |config|
  # ...
  config.mailer_sender = ->(_devise_mapping) { SiteConfig.email_from }
  # ...
end
Enter fullscreen mode Exit fullscreen mode

Happy Hacking!

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more