Mail via Python-script: afzender niet te wijzigen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Borromini
  • Registratie: Januari 2003
  • Niet online

Borromini

Mislukt misantroop

Topicstarter
Ik heb een mailscriptje in mekaar gezet (Python noob). Uiteindelijk komt het op m'n server te draaien waar het HTML-invoer moet afvangen, maar ik wil eerst zeker zijn dat het überhaupt werkt. Voor het gemak laat ik het script mails sturen via mijn Gmail-account naar de bestemmeling.

Op de server draait een website, en Postfix. Mails gericht aan dat domein worden afgevangen door Postfix en (voorlopig, testfase) naar mijn eigen Gmail-adres gestuurd. Eens alles werkt zal het nog steeds naar Gmail worden gestuurd, maar dan van de eigenaar van de site.

Hoe kan ik de afzender 'spoofen'? Het is de bedoeling dat de website-eigenaar het adres te zien krijgt van de persoon die hem gemaild heeft; niet van mijn mailaccount (waar Postfix 'm naar forward). Ik krijg dit met geen stokken aangepast.

Hieronder het script.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env python

# Import what we need. MIMEText should do just fine.
import smtplib
from email.mime.text import MIMEText

# Create the container
msg = MIMEText('Dit is een testmail. Waarom stuurt Google hem niet door??')
msg['Subject'] = 'Mail via de website'
msg['From'] = 'adres@randomwebsite'     # Wat ik er ook van maak, het blijft mijn Gmail-adres tonen in de ontvangen mail.
msg['To'] = 'bestemmeling@eigensite'
msg.preamble = 'Mail via de website'

# Authentication
smtpserver = 'smtp.gmail.com'
AUTHREQUIRED = 1
smtpuser = 'xx.xx@gmail.com'
smtppass = 'blabla'

# Send the e-mail
mailServer = smtplib.SMTP('smtp.gmail.com',587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(smtpuser, smtppass)
mailServer.sendmail('adres@randomwebsite','bestemmeling@eigensite',msg.as_string())
mailServer.close()

Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje


Acties:
  • 0 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 17:51
Dat ga je imho niet aangepast krijgen, omdat Gmail het altijd gaat overschrijven met het gmail adres.

Wat je beter kunt doen, is een reply-to header toevoegen, zodat als je de email wilt beantwoorden, het emailadres van de verzender (van het formulier) automatisch ingevuld kan worden.

Combineer dat met het instellen van een no-reply@ als afzender (je kunt in gmail een extra emailadres als om als afzender te gebruiken instellen, maar dat moet geverifieerd worden), en je zou vrij goed moeten zitten.

Acties:
  • 0 Henk 'm!

  • Borromini
  • Registratie: Januari 2003
  • Niet online

Borromini

Mislukt misantroop

Topicstarter
Ondertussen heb ik inderdaad gevonden dat Google dat niet toelaat. De reply-to werkt, maar dan ziet de eigenaar nog steeds mijn adres. Postfix draait toch al, ik denk dat ik die maar de mails laat versturen.

Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje


Acties:
  • 0 Henk 'm!

  • mrFoce
  • Registratie: Augustus 2004
  • Laatst online: 09-09 17:18
Misschien niet direct het antwoord of je vraag (die je al beantwoord hebt), maar kijk ook is naar services zoals Mailgun of Mandrill, die laten dat volgens mij wel toe. Gebruik zelf deze services voor productie en test systemen :)

Acties:
  • +1 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 17:51
Borromini schreef op zaterdag 17 oktober 2015 @ 00:50:
Ondertussen heb ik inderdaad gevonden dat Google dat niet toelaat. De reply-to werkt, maar dan ziet de eigenaar nog steeds mijn adres. Postfix draait toch al, ik denk dat ik die maar de mails laat versturen.
Zoals gezegd, dat zou op te lossen zijn door een extra adres (bijv. no-reply@mijndomein.nl) in je gmail te laten verifiëren, en dat dan te gebruiken als de "from".

Afbeeldingslocatie: http://cihs.cf/37

Je kunt anders inderdaad wel postfix gebruiken, maar let er op, dat als je dan je "from" instelt als het adres van de afzender (laten we nu eens piet@gmail.com nemen), er een kans is dat je email als spam gemarkeerd gaat worden (vanwege SPF records, en nog andere zaken).

Technisch gezien is het het beste om van de "from" een adres te gebruiken waar je controle over hebt (dus noreply@domein.nl of iets gelijkaardigs), en dan een "reply-to" gebruikt om bij antwoorden de invuller te bereiken.

[ Voor 32% gewijzigd door azerty op 17-10-2015 05:11 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17:03

Creepy

Tactical Espionage Splatterer

mrFoce schreef op zaterdag 17 oktober 2015 @ 04:26:
Misschien niet direct het antwoord of je vraag (die je al beantwoord hebt), maar kijk ook is naar services zoals Mailgun of Mandrill, die laten dat volgens mij wel toe. Gebruik zelf deze services voor productie en test systemen :)
Maar zelfs als ze het toelaten kan je tegen problemen aanlopen. Als iemand SPF, DKIM, of zelfs DMARC heeft ingesteld dan gaat jouw mail met zijn mailadres in de from niet aankomen. Je wil altijd een from adres (met een domein) waar je zelf controle over hebt.

Edit: lekker gelezen, wat azerty zegt dus ;)

[ Voor 3% gewijzigd door Creepy op 17-10-2015 20:39 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Borromini
  • Registratie: Januari 2003
  • Niet online

Borromini

Mislukt misantroop

Topicstarter
De mails moeten weldegelijk aankomen, beste oplossing lijkt dan inderdaad van noreply@eigensite en het e-mailadres van de afzender in Reply-to.

Bedankt!

Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje

Pagina: 1