[Ovillo] Relay access denied
Rosendo Marín
rosendo en krealia.com
Lun Jun 25 12:04:01 UTC 2007
he llamado donde está alojado el servidor y funciona bien ya que ha
mandado un correo de prueba y se ha recibido correctamente. Así que el
problema parece estar cuando se envía el correo mediante formulario. La
solución que me han dado es darle autentificación
(Mail.userName="my_user" y Mail.PassWord="my_password") y eso es lo que
he hecho pero tampoco me ha funcionado.
Dejo el código que tengo a ver si me faltara algo que hace que no funcione.
Éste es el que va en la página para enviar el formulario por correo:
sSQL = "SELECT SMTP, CORREOWEB FROM DOMINIOS WHERE I_DOMINIO=" &
Session("I_DOMINIO")
CrearRS dbi,rs,sSQL,0
SMTP=RS("SMTP")
CORREOWEB=RS("CORREOWEB")
CerrarObj(RS)
CerrarObj(dbi2)
REMITENTE_NOMBRE="WEB " & Session("WEB")
ASUNTO="CONSULTA FORMULARIO WEB " & Session("WEB")
CUERPO=NOMBRE & " a enviado la siguiente
consulta:<br /> " & SUGERENCIAS & "<br /><br />" &_
"Forma de contacto: " & TELEFONO &
" " & EMAIL
'Session("EMAIL")
envio=Enviar_Email
(SMTP,CORREOWEB,Remitente_Nombre,Session("EMAIL"),Asunto,Cuerpo)
Response.write("<br /><p>Comentario enviado
satisfactoriamente</p><br />")
Y aquí la función Enviar_Email donde le he añadido la autentificación:
Function Enviar_Email
(Servidor,Remitente_Email,Remitente_Nombre,Destinatario_Email,Asunto,Cuerpo)
' "" = ENVIO OK!
' "" <> ERROR, Y DEVOLVEMOS LA DESCRIPCIÓN DEL ERROR
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Host = Servidor
Mail.From = Cstr(Remitente_Email)
Mail.FromName = Cstr(Remitente_Nombre)
Mail.AddAddress Destinatario_Email
Mail.Subject = Asunto
Mail.Body = Cuerpo
Mail.userName="my_user"
Mail.PassWord="my_password"
On Error Resume Next
Mail.Send
If Err <> 0 Then ' error occurred
Email=Err.Description
End If
End Function
Gracias por aportarme soluciones!!!
Jorge Hoya escribió:
> Pues si estamos seguros que el códido del programa es correcto
> tendremos que pensar en la otra parte que interviene en el proceso: el
> servidor de correo. Sobre él podríamos preguntarnos:
>
> 1. ¿es la primera vez que utilizo este servidor para mandar correos?
> 2. en caso de no serlo, esos correos, ¿los he mandado con un cliente
> de correo electrónico o mediante aplicaciones idénticas a la que
> actualmente tenemos entre manos?
> 3. la dirección de correo que estamos usando, ¿pertenece a la lista de
> dominios permitidos por el servidor de correo que estamos usando? En
> caso contrario lo penalizará como intento de relay y lo bloqueará.
> 4. qué tipo de conexión necesita establecer el servidor de correo
> electrónico con el cliente para poder enviar los emails? ¿CRAM-MD5?
> ¿NTLM? ¿AUTH=LOGIN?
>
> Así todo, volviendo a tu código, vemos la línea
>
> auth = "true"
>
> que me imagino utilices para querer activar la seguridad en el email.
> PERO, mirando en la documentación de ASPEMail leemos:
>
> [...]
> When used in the standard mode (message queuing is not used), AspEmail
> supports the AUTH=LOGIN method only. When sending queued mail,
> AspEmail, in conjunction with EmailAgent, supports all three protocols
> described above. When attempting to negotiate an authentication
> protocol with the SMTP server, AspEmail tries the authentication
> methods in the following order: CRAM-MD5, NTLM, AUTH=LOGIN.
> [...]
>
> con lo que, por lo que entiendo de todo esto, auth = 'true' no vale
> para nada. En el modo estandard, AspEmail intentará enviar el email
> sin user/pass, si no se los indicamos, o autentificarse con AUTH=LOGIN
> en caso de proporcionarselos.
>
> Resumiend: tras leer la ayuda de Persits [1] y [2], parece que el
> problema está entre los datos de los emails (destinatario y remitente)
> y el servidor de correo. Si no es mucha indiscrección, ¿podrías darnos
> un ejemplo de los datos que estás usando, así como del servidor de
> correo?
>
>
> [1] http://support.persits.com/show.asp?code=PS01032724
> [2] http://support.persits.com/show.asp?code=PS030721110
>
>
>
Más información sobre la lista de distribución Ovillo