-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Aktivierungsmails landen im Spam / inaktive Accounts #28
Comments
Welcome to the Microsoft Cloud... Mit studentenportal/web#116 wäre das mit der Registrierung kein Problem mehr. |
Sofern am Setup in der Zwischenzeit nix verändert wurde, lassen wir die bereits via Hostpoint raus. |
Ah stimmt, das hat sich ja mit dem neuen Setup geändert... |
DKIM und SPF sind definitiv hilfreich, falls das nicht schon eingerichtet ist. |
Current state: sowie studentenportal/web#398 |
Alle nicht aktivierten Accounts mit einer >>> affected = registration.models.RegistrationProfile.objects.filter(activated=False, user__email__endswith="ost.ch")
>>> len(affected)
65 dann habe ich das Registrierungsdatum aktualisiert, damit die betroffenen Personen nochmals eine Woche Zeit haben: >>> import datetime
>>> for reg in affected:
... reg.user.date_joined = datetime.datetime.now()
... reg.user.save()
... assert not reg.activation_key_expired() und schliesslich alle Aktivierungs-Keys rausgesucht: >>> {reg.user.name(): reg.activation_key for reg in affected} Mit dieser Info habe ich dann ein Skript gefüttert, was via OST-SMTP-Server (via VPN ohne Authentifizierung nutzbar) nochmals eine Nachricht an alle betroffenen Personen verschickt: import email.message
import time
import smtplib
data = {
...,
"florian.bruhin": 'fc99714de40aac37ae57026e0bb734ba540c3f1cb4a002fef313c4185731ddd9',
}
SERVER = "smtp02.ost.ch"
TIMEOUT = 5
COOLDOWN = 10
FROMNAME = "Florian Bruhin"
FROMADDR = "[email protected]"
REPLY_TO = "[email protected]"
CONTENT = """
Hallo {name},
Du erhältst diese Nachricht, da du dich (vermutlich schon vor einiger Zeit) für
studentenportal.ch registriert hast, deinen Account {username} jedoch nie
aktiviert hast.
Vermutlich hast du die Aktivierungsmail nie bekommen. Leider scheinen die
OST-Mailserver einen deutlich agressiveren Spamfilter zu besitzen als damals
die der HSR, der die Mails gerne auch gleich komplett entsorgt, anstatt sie
wenigstens als Junk-Mail auszuliefern...
Jedenfalls: Sorry für die Umstände und die lange Wartezeit. Bisher fühlte sich
leider niemand dafür zuständig, dies hat sich nun geändert.
Du hast nun nochmals eine Woche Zeit, um deinen Account mit folgendem Link zu
aktivieren:
https://studentenportal.ch/accounts/activate/{key}
Sollte es wider Erwarten trotzdem noch Probleme geben, melde dich bitte bei
[email protected].
Liebe Grüsse,
Florian Bruhin
"""
def human_name(name: str) -> str:
return " ".join(s.capitalize() for s in name.rstrip("1").split("."))
def name_to_email(name: str) -> str:
return f"{name}@ost.ch"
messages = []
for name, actkey in data.items():
msg = email.message.EmailMessage()
msg["Subject"] = "Aktivierung Studentenportal"
msg["From"] = f"{FROMNAME} <{FROMADDR}>"
msg["To"] = name_to_email(name)
msg["Reply-To"] = "[email protected]"
msg["Bcc"] = FROMADDR
msg.set_content(CONTENT.format(name=human_name(name), username=name, key=actkey))
messages.append(msg)
with smtplib.SMTP(SERVER, timeout=TIMEOUT) as smtp:
for i, msg in enumerate(messages, start=1):
print(f"{i:2}/{len(messages)} {msg['To']}")
smtp.send_message(msg)
time.sleep(COOLDOWN) Zwei Baustellen bleiben momentan noch offen:
Momentan scheints so auszusehen, dass die Mails in der OST-Mailbox im Junk ausgeliefert werden. Das ist schon mal besser, als gar nicht... |
Unsere Aktivierungsmails an @ost.ch scheinen im Spam zu landen. Ich habe das grad kurz getestet.
Wir scheinen auch einige Leichen in der Datenbank zu haben, die nie aktiviert wurden - die meisten allerdings noch zu HSR-Zeiten:
Zwei Leute haben sich dazu im Januar schon auf [email protected] gemeldet - ich habe diese zwei Accounts jetzt mal von Hand in der DB aktiviert.
The text was updated successfully, but these errors were encountered: