Tutorial on verifalia gem
Having trouble setting this up on my Rails 7 app. A tutorial would be very helpful! Some goofball is using a bot to clog up my db with fake users. I've got him throttled to one a day, but it's quite annoying and potentially harmful if my app keeps sending emails to nonexistent email addresses (I could be labeled a scammer).
The instructions are probably quite good but they're all Ruby, not RoR, and I haven't learned enough POR, unfortunately. A Rails 7 approach would be much appreciated. Thanks.
Hi there,
I'm sorry to hear you're having trouble setting up email verification on your Rails 7 app. I understand how frustrating it can be dealing with fake users and the potential risks of sending emails to nonexistent addresses. A Rails-specific tutorial can definitely make things easier.
To help you out, here's a step-by-step guide to integrate MailTester Ninja with your Rails 7 application:
Add the MailTester Ninja gem to your Gemfile:
gem 'mailtester_ninja'
Run bundle install:
bundle install
Create an initializer: In
config/initializers
, create a file namedmailtester_ninja.rb
and add your API key:MailTesterNinja.configure do |config| config.api_key = 'your_api_key_here' end
Verify emails before saving users: In your User model (
app/models/user.rb
), add a before_save callback to verify email addresses:class User < ApplicationRecord before_save :verify_email private def verify_email response = MailTesterNinja.verify(email) unless response.valid? errors.add(:email, "is invalid") throw(:abort) end end end
Handle verification results: Customize the error handling and user feedback as needed. You might want to display a message to the user if their email address is invalid.
Testing: Test the setup by attempting to create a user with an invalid email address and ensuring it gets rejected.
This should help you integrate email verification into your Rails 7 app and prevent fake users from clogging your database. If you have any further questions or run into issues, feel free to ask!
Best regards,
Let me know if you need any more assistance!
Cloudflare as a proxy could help block the malicious user. They can block requests from known bots and present barriers to stop them.
They also run hCaptcha that you can implement in the sign up process to protect from bots. We have a lesson on that here: https://gorails.com/episodes/how-to-usehcaptcha-with-ruby-on-rails
I also like using invisible_captcha which is similar and doesn't require a third-party service (although it's not quite as good).