2011-07-23 10 views
6

que poner un formulario de contacto en mi sitio, y tengo esto en mi settings.pyemail_from en función de Django send_mail no trabajar

# Email settings 
EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = '****' 
EMAIL_PORT = 587 

Y esto en mi views.py

name = form.cleaned_data['name'] 
email = form.cleaned_data['email'] 
message = form.cleaned_data['message'] 
subject = 'Email from ' + name 
content = name + '\r\n' + email + '\r\n\r\n' + message 

send_mail(subject, content, email, ['[email protected]']) 

Todo funciona correctamente, recibo el correo electrónico con toda la información, pero el correo electrónico proviene del [email protected], aunque el parámetro from_email tiene la var email con el correo electrónico del remitente.

¿No funciona de esa manera o estoy haciendo algo mal?

Quería recibir el correo electrónico del remitente, por lo que puede responderlo, como hago en PHP.

Gracias.

Respuesta

7

Gmail no le permitirá spoof de donde vino el correo electrónico. puede que no -

por usuario Ian en un similar post

La respuesta corta.

Google reescribe los encabezados De y Responder a en los mensajes que envía a través de su servicio SMTP a los valores que se relacionan con su cuenta de gmail.

La función SMTP de gmail no está destinada a ser un servicio abierto o de retransmisión. Si permitía cualquier valor para el encabezado Desde, diluiría significativamente la reputación de Google con los servicios de spam, ya que no habría forma de verificar las credenciales del remitente.

Necesita considerar alternativas. ¿Cómo planea alojar su script/aplicación/sitio web cuando esté terminado? Prácticamente todas las soluciones de alojamiento (compartido/vps/servidor dedicado) vendrán preconfiguradas con una solución de transferencia de correo electrónico: ya sea sendmail o postfix en * nix, o IIS en Windows.

Si tienen la intención de utilizar Gmail a continuación, usted podría:

instalación de un dedicado "[email protected]" cuenta Si es el propietario del dominio que está supuestamente enviando a, utilizar el Gmail libre para dominios, y configure una cuenta "[email protected]".

+0

Entonces, ¿la única forma es usar un servidor diferente para enviar el correo electrónico o simplemente dejarlo así? – ramono

+0

Sí, por las razones indicadas en la publicación de iAn, los servidores de Google no le permitirán establecer arbitrariamente el contenido de la fuente de un correo electrónico. – Andy

+0

Edité mi vista como 'send_mail (subject +" - "from from eemail, message, from_email, ['[email protected]'])' para recibir el correo electrónico del remitente como parte del tema – Josh