20. februar 2006 - 09:06Der er
40 kommentarer og 1 løsning
SMTP og ASPNET
På Windows2003-maskinen kører mit aspnet2.0 website fra c:/inetpub/wwwroot. På samme maskine kører SMTPserveren.
Problem: Jeg kan ikke relaye mail. Jeg kan kun få lov at sende til maskinens eget domæne.
Hvordan gør man (jeg vil ikke åbne for alle uatoriserede brugere, selvom det umiddelbart løser problemet)
Jeg tænker at det måske har noget at gøre med, at brugeren 'aspnet', som afvikler websitet, ikke er autoriseret til at sende mails? Det brude vel ikke være nødvendigt explicit at autorisere sig fra koden, når man nu ligger på samme maskine som SMTPserveren? (jeg har prøvet nedenstående; men det gør ingen forskel, om jeg angiver credentials eller ej:)
SmtpClient client = new SmtpClient("localhost"); client.Credentials = new NetworkCredential( Convert.ToBase64String(Encoding.ASCII.GetBytes("USERNAME")), Convert.ToBase64String(Encoding.ASCII.GetBytes("PW")), Convert.ToBase64String(Encoding.ASCII.GetBytes("DOMAIN")) );
fik du tilføjet ip'en ? du skal derefter fjerne client.Credentials = new NetworkCredential( Convert.ToBase64String(Encoding.ASCII.GetBytes("USERNAME")), Convert.ToBase64String(Encoding.ASCII.GetBytes("PW")), Convert.ToBase64String(Encoding.ASCII.GetBytes("DOMAIN"))
jeg har fjernet credentials... min chef fortæller mig at det med 127.0.0.0 bare betyder at man har love at realye TIL localhost, og det er jo ikke det ønskede?
ok, den har stået på localhost hele tiden. Det ser ud til at den kun vil sende til sig selv (adresser som ender på et domænenavn som er vores): Jeg modtager mails til mig selv inden for firmaet, men ikke min private (get2net, hotmail ol.). I alle tilfælde siger min kode til mig, at mailen er sendt, så der bliver ikke kastet nogen exceptions.
Nu har jeg så prøvet at eliminere ASP.NET-leddet ved at prøve kommandoprompten på den omtalt win2003-maskine. Jeg skriver telnet, helo me, open localhost 25, og den svarer fint. Så prøver jeg med mail to:dr@dr.dk, og den skriver Invalid Address. Nu er min computer på vej til at blive en UFO som lander på parkeringspladsen...
det ved min chef... han er så bare desværrre gået for idag :-(
Jeg er nu kommet så lang med telnetten at jeg kan få den til at æde en mail from:ADRESSE, hvor ADRESSE er vores eget domæne. Men så heller ikke længere. Den vil ikke acceptere en rcpt to:ADRESSE, lige meget om den er intern eller ekstern. Ved ikke om det gør nogen forskel i forhold til router eller ej? Kan man teste om der er åbent for smtp på win2003-maskinen?
Iøvrigt er der følgende muligheder på SMTP-indstillingerne (nogen ide om hvilken der skal bruges)
Anonymous access: An account name or password is not required. You can use this option to disable authentication for the Simple Mail Transfer Protocol (SMTP) virtual server.
Basic authentication: An account name and a password are sent using plaintext. Specify a Windows domain that is appended to the account name for authentication.
Integrated Windows authentication: A Windows account name and password are authenticated using this option.
Ja, det gør nu hverken fra eller til. Jeg tænker, at når jeg i cmd-prompten ikke kan angive en gyldig mailto-adresse, så må det være noget andet end authenticateion, der er problemet...
har i exchange på serveren ? så prøv at gøre dette her: Reception Policies -> Højreklik på din Reception Policy og vælg Properties. Finde fanen: Email-adresses (Polity) og tilføj en SMTP-adress som hedder @mitdom.dk
Nope, ingen exchange. Jeg tror den er gal med porten, så vi skal have fat i vores netværksansvarlige her til morgen. Ræsonnement: 1. Jeg åbner (i IIS SMTPServer) for anonym adgang, fuld tilladelse til relay. I min c#kode angiver jeg ingen credentials. Resultat: Jeg kan kun sende til <adr>@<mitdom.dk> (altså vores eget domæne) 2. Jeg sætter autorisation til Basic, og begrænser relay til, at man skal være autoriseret. I min c#kode angiver jeg ingen credentials. Resultat: Jeg kan overhovedet ikke sende - får exception om at jeg ikke er autoriseret. 3. Jeg sætter autorisation til Basic, og begrænser relay til, at man skal være autoriseret, men i c#koden angiver jeg credentials, og kan således autorisere mig. Men jeg kan stadig kun sende til <adr>@<mitdom.dk>.
Dette siger mig, at problemet ikke er at blive autoriseret på SMTPserveren, men at problemet ligger længere ude end serveren (i netværket).
Ja, så virker det... det var porten - alt det besvær undgået, hvis vi bare havde ringet til netværksmanden med det samme. Smid et svar, så får du pointene for alt det her (så lærte man da lidt om opsætning af SMTPserver...)
np :) Det er ikke altid lige til at finde løse problem :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.