Troppi domini email utente non funzionanti portano al disabilitamento del dominio Mailgun: cosa fare?

Ciao!

Il mio forum ha molti utenti importati con un dominio email specifico che non funziona più.
Alcune migliaia di utenti hanno un indirizzo email di questo tipo.

Non era un problema fino a ora, ma ho aumentato il valore di sopprimi email di riepilogo dopo giorni e il mio forum ha inviato molte email di riepilogo, anche a molti utenti con domini email non funzionanti.

Ciò ha causato troppi rimbalzi e Mailgun ha disabilitato il mio dominio.

Cosa dovrei fare con questi account per prevenire questo problema e risolvere la situazione? Molti di questi account appartengono a utenti legittimi che non sono ancora tornati sul forum. Non sono necessariamente account abbandonati.

A causa di questo problema, gli utenti non possono registrarsi al forum finché non viene risolto.

Scopri Gestione delle e-mail rimbalzate

Per qualche motivo non sono riuscito a trovare questo argomento con la ricerca… immagino che mi sia spaventato! :sweat_smile:

Grazie mille per la tua risposta veloce!

Ma se ci sono un miliardo di indirizzi email come bademail.domain, forse ciò che vuoi fare è qualcosa del genere:

rake posts:remap['bademail.domain', 'no-email.invalid']

come descritto in Replace a string in all posts. Questo farà sì che Discourse non invii email a tutti quegli indirizzi. Un’altra buona soluzione sarebbe qualcosa del genere:

bad=User.find_by_email     
<una ricerca che li recuperi tutti>
bad.update_all(active: false)

e disattivare tutti gli utenti con indirizzi email falsi noti. Non sono sicuro di come fare la prima parte a memoria, ma dovrebbe essere abbastanza semplice da capire.

Sì, ho pensato di fare questo per eliminare questi domini di posta elettronica.

Ho notato che un metodo di Discourse crea indirizzi email con @no-email.invalid:

E nel base dell’importatore, viene utilizzato @email.invalid, che è leggermente diverso:

  1. Questi due “domini fittizi” diversi vengono entrambi ignorati quando Discourse deve inviare email?

  2. Dovrei sostituire il mio dominio non funzionante con @no-email.invalid o @email.invalid, o non fa differenza?

@pfaffman, non sono sicuro di capire perché dovrei rimappare nei post invece di modificare gli indirizzi email degli utenti:thinking: Questi indirizzi email non si trovano nei post, a meno che non mi stia perdendo qualcosa.

Se è un metodo consigliato, vorrei semplicemente sostituire i miei indirizzi @brokendomains.com in ogni profilo con @no-email.invalid o @email.invalid. Posso capire come farlo, mi chiedo solo quale dominio “finto” usare.

Sono abbastanza certo che posts:remap esegua il remapping di quel dominio su tutte le tabelle, ma hanno dovuto inserirlo in una certa classe.

Potresti anche scrivere la tua sostituzione direttamente nella tabella UserEmails (o come si chiama).

Sono abbastanza certo che whatever.invalid comunicherà al mondo che si tratta di un indirizzo non valido e che non verrà tentata l’invio.

Bello. Quindi immagino che questo faccia al caso nostro?

User.find_each do |u|
	if u.email.include? "@brokendomain.com"
		u.update(email: SecureRandom.hex + "@email.invalid")
	end
end

Penso che potrei

UserEmail.where("email like '%@brokendomain.com'").each do |e|
   e.update(email: SecureRandom.hex + "@email.invalid")
end

Anche il tuo potrebbe funzionare, ma non sono sicuro che il modello User sia stato aggiornato per poter usare u.email.include? dopo aver spostato le email in un altro modello/tabella.

Ho provato il mio script solo per verificare se restituisse gli indirizzi email di destinazione e funziona.

Il tuo script dovrebbe essere più veloce del mio, dato che utilizzi una query per selezionare domini email specifici invece di iterare su tutti gli utenti.

Grazie mille per il tuo aiuto :+1:

Ops. Ecco il remap che intendevo. È semplicemente

  discourse remap vecchio nuovo

Vedi Change the domain name or rename your Discourse.

Penso che quanto sopra funzionerebbe, ma la soluzione UserEmails è probabilmente leggermente migliore.

Grazie. Questa è quella che ho usato.
Più di 5000 utenti su un totale di 17000 avevano domini email del genere. Non sorprende il numero di rimbalzi quando ho aumentato sopprimi email di digest dopo giorni

Questa è una gestione speciale da parte di Discourse per tutto ciò che termina con .invalid, che è un TLD riservato.