csmu
(Keith John Hutchison - Ceiteach Seán Mac Úistin)
1
Unser gemeinsamer Mailgun-Server wird bei von Microsoft verwalteten Domains blockiert. Ich möchte eine Nachricht an die Personen in der Gruppe mit Microsoft-E-Mail-Adressen senden.
Ich suche nach Ruby-Code, um alle Benutzer innerhalb einer Gruppe mit E-Mail-Adressen in bestimmten Domains zu finden.
Das passiert uns manchmal, aber es klärt sich in der Regel von selbst, sobald sie mit den betreffenden Absendern verfahren. Ein paar Mal habe ich den Mailgun-Support gebeten, uns auf eine ruhigere IP-Adresse zu verlegen, und das haben sie auch getan.
csmu
(Keith John Hutchison - Ceiteach Seán Mac Úistin)
3
Bist du im kostenlosen Tarif oder auf einem bezahlten Plan?
Bezahlter „Concept“-Plan. Ca. 30.000 E-Mails pro Monat.
Eine weitere Möglichkeit: Erstellen Sie eine neue Gruppe und fügen Sie automatisch Mitglieder einer bestimmten Domain hinzu, um dann diese Gruppe zu kontaktieren:
csmu
(Keith John Hutchison - Ceiteach Seán Mac Úistin)
5
Das ist, was ich geschrieben habe, um E-Mail-Adressen von Benutzern mit E-Mail-Adressen innerhalb einer Reihe von Domains und deren Zugehörigkeit zu einer Reihe von Gruppen zu extrahieren.
def extract_users_email_addresses_by_named_domains_and_group_names(domain_names=[], group_names=[], output_path=nil, verbose=false)
# TODO: SQL-Aufrufe so ändern, dass Parameter verwendet werden
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)
Ich habe bereits dafür gesorgt, dass Konten mit den kostenlosen 10.000/monatlichen Plänen auf neue IP-Adressen umgezogen werden, manchmal in weniger als einer Stunde. Du solltest auf jeden Fall ein Ticket eröffnen.
csmu
(Keith John Hutchison - Ceiteach Seán Mac Úistin)
7
Sieht so aus, als hätten sie es schon behoben … ohne ein Ticket zu erstellen