2010-02-17 10 views
7

Abbiamo ereditato un classico sito ASP da un'agenzia di progettazione che voleva solo che facessimo una ricerca e sostituiremo per cambiare gli host SMTP. Nessun problema, siamo un negozio PHP ma possiamo mettere le mani su molte cose.ASP classico che invia e-mail con autenticazione SMTP

In seguito a ulteriori indagini è stato scoperto che è necessario autenticarsi con il nuovo server SMTP.

Un po 'di googling ci porta a credere che stia usando ASPMail 4 e secondo i documenti non fa autenticazione.

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

Abbiamo appena Googled "SMTPsvg.Mailer" da questa chiamata:

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

Ho ragione nelle mie ipotesi che quanto sopra è ASPMail 4, e l'APSMAil non fa l'autenticazione?

Cosa posso utilizzare per l'autenticazione con un server SMTP se devo sostituire Aspmail?

+2

Giusto per notare, non so nulla di ASP ... tranne che funziona su server Windows e inizia guerre di fiamma. – johnwards

risposta

18

Come detto, utilizzare 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 

Documentazione su ogni campo dell'oggetto di configurazione possono essere trovati here!

+0

Per i principianti come me 'l'applicazione (" sendusername ")' deve essere definita da qualche altra parte. Se non lo hai definito prima, usalo direttamente come "" [email protected] "' – Kemal

1

Verificare se il fornitore di hosting supporta .NET Framework 2.0 (la maggior parte fanno), in caso affermativo rinominare il file ASP per aspx rimuovere il codice che invia l'e-mail e scrivere del codice facile:

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

Saluti

Thomas

+1

Sfortunatamente, il porting di pagine ASP esistenti su pagine ASP.NET non è quasi mai facile come semplicemente rinominare l'estensione del file da .asp a .aspx perché, tra gli altri fattori, ci sono differenze significative tra Microsoft Visual Basic Scripting Edition (VBScript) e Visual Basic .NET. da: http://msdn.microsoft.com/en-us/library/ms973813.aspx – Shoban

+0

Non necessariamente ha bisogno di riscrivere l'intera pagina, solo facendo un 'mailsender.aspx' che accetta i dati necessari come dati POST, invia la posta e restituisce un valore di risultato. Meglio di usare CDO secondo me. –

-3

Secondo la documentazione here ASPMail 4.x semplicemente non supporta l'autenticazione. Sembra che dovrai passare a un altro componente SMTP basato su COM.

+3

ha fornito il link nella sua domanda :) – Shoban

+0

Perché esattamente il reposting dello stesso link guadagna un downvote quando la mia risposta è identica alla domanda più votata? Mi stavo solo chiedendo. –

+0

Non ho abbastanza rep per votare. Tuttavia potrebbe essere dovuto al fatto che ti sei collegato agli stessi documenti a cui mi sono collegato nella mia domanda affermando lo stesso di quello che ho fatto dicendo che i documenti non supportano l'autenticazione. – johnwards