Tôi đang sử dụng tài khoản Gmail Apps for Domain để gửi email trong ứng dụng đường ray cho email tự động chuẩn (đăng ký người dùng, quên mật khẩu, thông báo cho quản trị viên về nhận xét mới, v.v), nhưng tôi lo lắng về 500 email mỗi ngày giới hạn do Google đặt.Tôi làm cách nào để làm việc với/xung quanh các giới hạn gửi đi SMTP của Gmail?
Google đề xuất một cách để vượt qua giới hạn là sử dụng nhiều tài khoản người dùng.
Vì vậy, tôi đã thiết lập 10 tài khoản người dùng gmail bổ sung (noreply1, noreply2, noreply3, v.v.) - Tôi muốn theo dõi khi bất kỳ tài khoản nào trong số này gửi 500 email trong khoảng thời gian 24 giờ và sử dụng tài khoản không hoạt động cho phù hợp.
Làm cách nào để tự động đặt giá trị :user_name
trong ActionMailer::Base.smtp_settings
?
Đây là thiết lập hiện tại của tôi - Chú ý: đây gửi từ "noreply1" mọi thời gian, mặc dù tôi đang thiết lập một cách rõ ràng: user_name và: từ để "noreply2":
--- development.rb ---
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => "587",
:domain => "mydomain.com",
:authentication => :plain,
:user_name => "[email protected]",
:password => "password"
}
--- account.rb --- (MODEL, called via a callback)
after_create :send_welcome_email
...
def send_welcome_email
#ActionMailer::Base.smtp_settings[:user_name] = '[email protected]'
ActionMailer::Base.smtp_settings.merge!({:user_name => "[email protected]"})
SubscriptionNotifier.deliver_welcome(self)
end
--- subscription_notifier.rb --- (MODEL)
class SubscriptionNotifier < ActionMailer::Base
def welcome(account)
@sent_on = Time.now
@subject = "Welcome to the App"
@recipients = account.email
@from = "[email protected]"
@body = { :account => account }
end
end
Tôi nghĩ ý tưởng của workmad3 về việc thay đổi ActionMailer :: Base.smtp_settings băm là đúng hướng, tôi không thể tìm ra cách để có được đường ray tải lại giá trị của hàm băm bằng khóa động: user_name. –
Bạn đang sử dụng phiên bản Rails nào? Thay đổi ActionMailer :: Base.smtp_settings [: user_name] động trong một hành động điều khiển hoạt động cho tôi trong 2.3.2. (Ít nhất, băm thay đổi. Tôi không thử gửi thư.) –
đó là điều kỳ lạ - giá trị khóa băm thay đổi, nhưng email được gửi bằng cách sử dụng bản gốc: user_name trong tệp development.rb của tôi –