我们的共享 Mailgun 服务器在 Microsoft 控制的域名上被阻止。我想向该组中拥有 Microsoft 邮箱地址的用户发送消息。
我正在寻找一些 Ruby 代码,用于查找组内邮箱地址属于特定域名的所有用户。
我们的共享 Mailgun 服务器在 Microsoft 控制的域名上被阻止。我想向该组中拥有 Microsoft 邮箱地址的用户发送消息。
我正在寻找一些 Ruby 代码,用于查找组内邮箱地址属于特定域名的所有用户。
这种情况我们偶尔也会遇到,但通常随着微软处理违规发件人,问题会自行解决。有几次我请求 Mailgun 支持团队将我们迁移到一个更安静的 IP 地址,他们确实这样做了。
您使用的是免费套餐还是付费计划?
这是我编写的代码,用于提取属于特定域且属于特定组的用户的电子邮件地址。
def extract_users_email_addresses_by_named_domains_and_group_names(domain_names=[], group_names=[], output_path=nil, verbose=false)
# TODO 将 SQL 调用改为使用参数
results = []
user_ids = []
group_ids = []
users_email_addresses = []
group_names_sql = 'select * from groups where '
group_names_where = ''
user_emails_sql = 'select user_id from user_emails where '
user_emails_where = ''
if domain_names.length > 0 and group_names.length > 0 then
domain_names.each do |domain_name|
if user_emails_where.length == 0 then
user_emails_where = sprintf("email like '%%%s%%'", domain_name)
else
user_emails_where = sprintf("%s or email like '%%%s%%'", user_emails_where, domain_name)
end
end
user_emails_sql = sprintf("%s %s", user_emails_sql, user_emails_where)
if verbose then
puts "UserEmail.find_by_sql(\"#{user_emails_sql}\")"
end
user_emails = UserEmail.find_by_sql(user_emails_sql)
user_emails.each do |user_email|
user_ids.push(user_email.user_id)
end
group_names.each do |group_name|
if group_names_where.length == 0 then
group_names_where = sprintf("name like '%%%s%%'", group_name)
else
group_names_where = sprintf("%s or name like '%%%s%%'", group_names_where, group_name)
end
end
group_names_sql = sprintf("%s %s", group_names_sql, group_names_where)
if verbose then
puts "Group.find_by_sql(\"#{group_names_sql}\")"
end
groups = Group.find_by_sql(group_names_sql)
groups.each do |group|
group_ids.push(group.id)
end
group_users = GroupUser.where(group_id: group_ids.to_set, user_id: user_ids.to_set)
user_ids = []
group_users.each do |group_user|
user_ids.push(group_user.user_id)
end
users = User.where(id: user_ids.to_set)
users.each do |user|
users_email_addresses.push(sprintf("%s", user.email))
end
if output_path then
file = File.open(output_path, "w")
first = true
users_email_addresses.each do |users_email_address|
if first then
first = false
file.write(users_email_address)
else
file.write(sprintf(",%s", users_email_address))
end
end
file.write("\n")
file.close()
end
end
return { group_ids: group_ids.to_set, user_ids: user_ids.to_set, users_email_addresses: users_email_addresses }
end
domain_names = ['outlook.com', 'hotmail', 'live.com']
group_names = ['irish-club-members']
output_path = 'irish-club-microsoft-email-list.txt'
verbose = false
extract_users_email_addresses_by_named_domains_and_group_names(domain_names: domain_names, group_names: group_names, output_path: output_path, verbose: verbose)
我曾让他们将账户迁移到新的IP地址,使用的是每月10K的免费套餐,有时不到一小时就完成了。您确实应该提交一个工单。
看起来他们已经修复了……而且还没开工单:slight_smile:
![]()