mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 07:53:49 +08:00
Make Email::Receiver.check_address() into a class method.
This commit is contained in:
@ -75,7 +75,7 @@ class Admin::EmailController < Admin::AdminController
|
|||||||
# These strings aren't localized; they are sent to an anonymous SMTP user.
|
# These strings aren't localized; they are sent to an anonymous SMTP user.
|
||||||
if User.find_by_email(params[:from]).nil? && !SiteSetting.enable_staged_users
|
if User.find_by_email(params[:from]).nil? && !SiteSetting.enable_staged_users
|
||||||
render json: { reject: true, reason: "Mail from your address is not accepted. Do you have an account here?" }
|
render json: { reject: true, reason: "Mail from your address is not accepted. Do you have an account here?" }
|
||||||
elsif Email::Receiver.new(params[:from]).check_address(params[:to]).nil?
|
elsif Email::Receiver.check_address(Email.downcase(params[:to])).nil?
|
||||||
render json: { reject: true, reason: "Mail to this address is not accepted. Check the address and try to send again?" }
|
render json: { reject: true, reason: "Mail to this address is not accepted. Check the address and try to send again?" }
|
||||||
else
|
else
|
||||||
render json: { reject: false }
|
render json: { reject: false }
|
||||||
|
@ -302,11 +302,11 @@ module Email
|
|||||||
|
|
||||||
def destinations
|
def destinations
|
||||||
all_destinations
|
all_destinations
|
||||||
.map { |d| check_address(d) }
|
.map { |d| Email::Receiver.check_address(d) }
|
||||||
.drop_while(&:blank?)
|
.drop_while(&:blank?)
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_address(address)
|
def self.check_address(address)
|
||||||
# only check for a group/category when 'email_in' is enabled
|
# only check for a group/category when 'email_in' is enabled
|
||||||
if SiteSetting.email_in
|
if SiteSetting.email_in
|
||||||
group = Group.find_by_email(address)
|
group = Group.find_by_email(address)
|
||||||
@ -317,7 +317,7 @@ module Email
|
|||||||
end
|
end
|
||||||
|
|
||||||
# reply
|
# reply
|
||||||
match = reply_by_email_address_regex.match(address)
|
match = Email::Receiver.reply_by_email_address_regex.match(address)
|
||||||
if match && match.captures
|
if match && match.captures
|
||||||
match.captures.each do |c|
|
match.captures.each do |c|
|
||||||
next if c.blank?
|
next if c.blank?
|
||||||
@ -443,7 +443,7 @@ module Email
|
|||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
def reply_by_email_address_regex
|
def self.reply_by_email_address_regex
|
||||||
@reply_by_email_address_regex ||= begin
|
@reply_by_email_address_regex ||= begin
|
||||||
reply_addresses = [
|
reply_addresses = [
|
||||||
SiteSetting.reply_by_email_address,
|
SiteSetting.reply_by_email_address,
|
||||||
@ -652,7 +652,7 @@ module Email
|
|||||||
end
|
end
|
||||||
|
|
||||||
def should_invite?(email)
|
def should_invite?(email)
|
||||||
email !~ reply_by_email_address_regex &&
|
email !~ Email::Receiver.reply_by_email_address_regex &&
|
||||||
email !~ group_incoming_emails_regex &&
|
email !~ group_incoming_emails_regex &&
|
||||||
email !~ category_email_in_regex
|
email !~ category_email_in_regex
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user