03. august 2006 - 20:04Der er
17 kommentarer og 1 løsning
bruge mail() funktion via gmails mailserver
jeg er igang med at lave en hjemmeside, hvor jeg vil kunne sende en mail til dem der opretter en ny bruger. Men da jeg ikke har nogen mailserver på min computer, kunne jeg tænke mig at sende via gmails mailserver.
hvor stor er forskellen, jeg skal vel begge gange conecte til en server, og indtaste brugernavn og adgangskode. jeg har også forsøgt at bruge min egen mailserver, men det kan jeg heller ikke finde ud af... jeg har installeret en argosoft mailserver, men jeg kan ikke få den til at sende mails. jeg kan fint forbinde til den med telnet.
Hvis du bruger din udbyders SMTP skal du da ikke angive brugernavn og password ?
Som philip skriver så kan du ikke bruge almindelig mail() men skal "manuelt" åbne forbindelsen til SMTP serveren smide korrekte kommandoer og lukke forbindelsen igen.
jeg får dette output når jeg prøver at tage forbindelse: Fejl 1050 - Unable to find the socket transport "smtp" - did you forget to enable it when you configured PHP?
Hvis du sidder på en windows-computer, så kan du sætte hvilken smtp-server PHP skal bruge - tvivler dog på at PHP kan finde ud af at snakke m. GMail da det kræver ssl-user-auth..
Derimod bør du sætte den til at bruge TDC's (hvis du altså har en tdc-internet forbindelse) - der er intet password på, men den tjekker om du kommer fra en tdc-linje, og hvis ikke afviser dig.
---
hvis du derimod sidder på en linux (tvivler) så skal du bare ændre på din MTA til at relaye igennem TDC..
---
Og mht at echo af en fsockopen giver "Resource id #n", så ja - det vil den altid gøre... Du skal så bruge fgets($fo) og fputs($fp, $input) for at læse og skrive til den åbnede socket.
Ja, find din php.ini fil (ligger ofte i c:\windows\php.ini) og find den linje der hedder noget i retningen af "smtp = localhost" og ændre den til "smtp = smtp.mail.dk", genstart apache og bare brug mail() som man plejer
det nåede lige at virke, men tdc har skiftet til asmtp (et system hvor man skal registreres med bruger nr og adgangskode før man kan sende mails... men har fundet noget interesant hos gmail: telnet smtp.gmail.com 587
--- [connect til server] < 220 [identifikation] <CR><LF> > HELO [ident, fx "xyz"] <CR><LF> < 250 [server-navn] <CR><LF> > MAIL FROM: din@email.com <CR><LF> < 250 OK <CR><LF> > RCPT TO: din@modtager.com <CR><LF> < 250 OK <CR><LF> > DATA <CR><LF> < 354 End data with "<CR><LF>.<CR><LF>" <CR><LF> > Subject: Dit subject her <CR><LF> > To: Din Modtager <din@modtager.dk> <CR><LF> > From: Dig Selv <din@email.com> <CR><LF> > > Indholdet af din email her... <CR><LF> > . <CR><LF> < 250 Ok: queued as [queue-navn] <CR><LF> > QUIT <CR><LF> < 221 Bye <CR><LF> <EOF> ---
Så skal man så lige tænke over encoding af tekst, fordi mails kun må indholdet 7-bit encodet tekst (aka us-ascii aka ingen æøå). Så skal man ud i at lave encoding af content og headers - derfor mange bruger en klasse ala phpMailer fordi den klare det for en. Man kan dog også sagtens lave det selv - jeg har gjort det to gange (en gang i php, en gang i java)
Problemet m. Google's SMTP er at den kræver login over SSL, så det skal man liiiiiige tænke en del over.. det ved jeg ik hvordan man efterligner...
det havde jeg fået læst mig til, men hele problemet ligger i ssl... det er noget med et certifikat, og jeg tvivler på jeg uden videre kan fikse den
men ellers har tdc jo skiftet til asmtp, hvor jeg skal logge på med password og brugernavn, men jeg har ikke kunne finde noget eksempel på hvordan det gøres over telnet
nu har jeg fundet ud af at webspeed stqadig kører på smtp.mail.dk... og da jeg skiftede tilbage, virkede det igen... ved ikke hvad der gik galt før, men nu er den der :P så kom med nogle svar
ok så tror jeg jeg vil lukke mange tak for hjælpen anyways :P
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.