2010-02-17 26 views
7

Hemos heredado un sitio ASP clásico de una agencia de diseño que solo quería que realizáramos una búsqueda y un reemplazo para cambiar los hosts SMTP. No hay problema, somos una tienda de PHP pero podemos volvernos a la mayoría de las cosas.Correo electrónico de envío de ASP clásico con autenticación SMTP

En una investigación posterior, se descubrió que necesitamos autenticarnos con el nuevo servidor SMTP.

Un poco de google nos hace creer que está utilizando ASPMail 4 y de acuerdo con los documentos, no hace la autenticación.

http://www.serverobjects.com/comp/Aspmail4.htm

simplemente nos googled "SMTPsvg.Mailer" de esta llamada:

Set Mailer = Server.CreateObject("SMTPsvg.Mailer") 

Estoy en lo correcto en mis suposiciones que lo anterior es ASPMail 4, y el APSMAil no hace la autenticación?

¿Qué puedo usar para autenticar con un servidor SMTP si necesito reemplazar Aspmail?

+2

Solo para tener en cuenta, no sé nada sobre ASP ... aparte de que se ejecuta en servidores de Windows y comienza la guerra de llama. – johnwards

Respuesta

18

Como dije, use CDO.

set config = CreateObject("CDO.Configuration") 
sch = "http://schemas.microsoft.com/cdo/configuration/" 
with config.Fields 
.item(sch & "sendusing") = 2 ' cdoSendUsingPort 
.item(sch & "smtpserver") = application("smtpserver") 
.item(sch & "smtpserverport") = application("smtpserverport") 
.item(sch & "smtpauthenticate") = 1 'basic auth 
.item(sch & "sendusername") = application("sendusername") 
.item(sch & "sendpassword") = application("sendpassword") 
.update 
end with 

with CreateObject("CDO.Message") 
    .configuration = config 
    .to = ... 
    .from = ... 
    .subject = .... 
    .HTMLBody = .... 
    call .send() 
end with 

Docs sobre cada campo del objeto de configuración se puede encontrar here!

+0

Para principiantes como yo 'la aplicación (" sendusername ")' debe definirse en otro lugar. Si no lo definió antes, úselo directamente como '" [email protected] "' – Kemal

1

Compruebe si el proveedor de hosting soporta .Net Framework 2.0 (la mayoría lo hacen), si es así cambiar el nombre del archivo .asp a .aspx, quitar el código que envía el correo electrónico y escribir algo de código fácil:

http://www.systemwebmail.com/faq/3.8.aspx

Saludos

Thomas

+1

Desafortunadamente, portar páginas ASP existentes a páginas ASP.NET casi nunca es tan fácil como cambiar el nombre de la extensión de archivo de .asp a .aspx porque, entre otros factores, existen diferencias significativas entre Microsoft Visual Basic Scripting Edition (VBScript) y Visual Basic .NET. de: http://msdn.microsoft.com/en-us/library/ms973813.aspx – Shoban

+0

No necesariamente tiene que volver a escribir la página completa, solo hace un 'mailsender.aspx' que acepta los datos necesarios como datos POST, envía el correo y devuelve un valor de resultado. Mejor que usar CDO en mi opinión. –

-3

De acuerdo con los documentos here ASPMail 4.x simplemente no soporta la autenticación. Parece que tendrá que cambiar a un componente SMTP basado en COM diferente.

+3

ha dado el enlace en su pregunta :) – Shoban

+0

¿Por qué exactamente volver a publicar el mismo enlace gana un voto negativo cuando mi respuesta es idéntica a la pregunta más votadas? Sólo me preguntaba. –

+0

No tengo suficientes representantes para votar. Sin embargo, puede deberse al hecho de que se vinculó a los mismos documentos a los que me he vinculado en mi pregunta al afirmar lo mismo que yo, que los documentos dicen que no es compatible con la autenticación. – johnwards

Cuestiones relacionadas