최근 우리 포럼에 이상한 이메일 주소를 사용해 가입한 스팸 사용자가 몇 명 있습니다. 그래서 “허용된 이메일 도메인” 기능을 사용해 가입을 어느 정도 제한하고자 합니다. 하지만 질문이 하나 있습니다. harvard.edu , stanford.edu 등 모든 edu 이메일 도메인을 허용하려면 어떻게 설정해야 하나요? 설정에 "*.edu"를 입력해 보았지만, 이 기능이 제대로 작동하지 않는 것 같습니다.
Don
10월 22, 2022, 6:17오전
2
안녕하세요,
방금 확인해 봤는데, 이는 정규식에서 비롯된 것 같습니다.
def self.can_auto_approve_user?(email)
if (setting = SiteSetting.auto_approve_email_domains).present?
return !!(EmailValidator.allowed?(email) && email_in_restriction_setting?(setting, email))
end
false
end
def self.email_in_restriction_setting?(setting, value)
domains = setting.gsub('.', '\.')
regexp = Regexp.new("@(.+\\.)?(#{domains})$", true)
value =~ regexp
end
def self.is_developer?(value)
Rails.configuration.respond_to?(:developer_emails) && Rails.configuration.developer_emails.include?(value)
end
def self.email_regex
Discourse.deprecate(
"EmailValidator.email_regex is deprecated. Please use EmailAddressValidator instead.",
허용된 이메일 도메인 설정에 edu를 추가하면 충분합니다. 그러면 가입 시 .edu를 제외한 모든 도메인이 차단됩니다.
테스트 사이트에서 간단히 테스트해 보았는데, 도메인이나 와일드카드 없이 edu에 해당하는 부분만 추가하니 정상적으로 동작하는 것 같습니다.
아, @Don님이 먼저 말씀하셨네요.