csmu
(Keith John Hutchison - Ceiteach Seán Mac Úistin)
1
Il nostro server Mailgun condiviso viene bloccato sui domini controllati da Microsoft. Voglio inviare un messaggio alle persone di quel gruppo che hanno indirizzi email Microsoft.
Sto cercando del codice Ruby per trovare tutti gli utenti di un gruppo con indirizzi email in determinati domini.
Ci capita a volte, ma di solito si risolve da solo mentre gestiscono il mittente/i responsabile/i. Qualche volta ho chiesto al supporto di Mailgun di spostarci su un IP meno affollato e l’hanno fatto.
csmu
(Keith John Hutchison - Ceiteach Seán Mac Úistin)
3
csmu
(Keith John Hutchison - Ceiteach Seán Mac Úistin)
5
Questo è quanto ho scritto per estrarre gli indirizzi email degli utenti che possiedono un indirizzo email in un insieme di domini e che appartengono a un insieme di gruppi.
def extract_users_email_addresses_by_named_domains_and_group_names(domain_names=[],group_names=[],output_path=nil,verbose=false)
# TODO: modificare le chiamate SQL per utilizzare i parametri
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)
Li ho visti spostare gli account su nuovi indirizzi IP con i piani gratuiti da 10k/mese, a volte in meno di un’ora. Dovresti assolutamente aprire un ticket.
csmu
(Keith John Hutchison - Ceiteach Seán Mac Úistin)
7
Sembra che l’abbiano già risolto… senza nemmeno aprire un ticket