Skicka mail med php-sida till användare

Permalänk

Skicka mail med php-sida till användare

Hej,
Jag håller på med en hemsida med login funktion som förutom användarnamn och lösenord även ska ha ett verifierings-email varje gång som man försöker logga in. Det ska vara en random funktion som ska göra ett antal tecken som man ska få i sin epost-inkorg när man försöker logga in. Sen ska man skriva in det på hemsidan för att kunna logga in.

Jag håller på med projeketet med XAMPP och nu tänkte jag bara pröva att använda Mercury mail funktionen för att skicka e-post mellan 2 användare på localhost (127.0.0.1). Fast det funkar inte trots att jag följt denna guide-video exakt: https://www.youtube.com/watch?v=7dcaUUlsMOg. Det står att jag skickat mailen fast de kommer aldrig till inkorgen på den andra användaren.

Hur fixar jag att maila mellan 2 användare som i videon?
Kan jag maila med en php funktion endå till mig själv trots att just det där inte fungerar (kanske med gmail)?

Permalänk
Medlem

Att skicka mail från egna servrar är rätt svårt, kräver väldigt mycket jobb för att sin server ska bli accepterad av mottagande SMTP-servrar, enklare att bara använda en tjänst som Sendgrid exempelvis, eftersom det låter som ett hobbyprojekt så blir det helt gratis för dig.

Permalänk
Skrivet av dlq84:

Att skicka mail från egna servrar är rätt svårt, kräver väldigt mycket jobb för att sin server ska bli accepterad av mottagande SMTP-servrar, enklare att bara använda en tjänst som Sendgrid exempelvis, eftersom det låter som ett hobbyprojekt så blir det helt gratis för dig.

Jaha. Är det det att man måste ha https istället för http på sin server för att ens SMTP-server ska bli accepterad?

Permalänk
Medlem
Skrivet av DevLeader:

Jaha. Är det det att man måste ha https istället för http på sin server för att ens SMTP-server ska bli accepterad?

Nej, SMTP och HTTP är olika protokoll. Stora mailaktörer som Google, Microsoft osv har extremt strikta regler gällande mail och om du inte uppfyller deras krav så blacklistas din server permanent. Om du skulle använda PHP så kommer det i praktiken att vara som att du har din egen mailserver och du kommer troligen blacklistas direkt om du skickar till någon av de stora aktörerna.

Permalänk
Medlem
Skrivet av orp:

Nej, SMTP och HTTP är olika protokoll. Stora mailaktörer som Google, Microsoft osv har extremt strikta regler gällande mail och om du inte uppfyller deras krav så blacklistas din server permanent. Om du skulle använda PHP så kommer det i praktiken att vara som att du har din egen mailserver och du kommer troligen blacklistas direkt om du skickar till någon av de stora aktörerna.

Fast inte helt sant, han kan ju relaya via vilken smtp server som helst, du bör dock ordna spf records osv.

Visa signatur

Citera om du vill ha svar :)

Permalänk
Skrivet av orp:

Nej, SMTP och HTTP är olika protokoll. Stora mailaktörer som Google, Microsoft osv har extremt strikta regler gällande mail och om du inte uppfyller deras krav så blacklistas din server permanent. Om du skulle använda PHP så kommer det i praktiken att vara som att du har din egen mailserver och du kommer troligen blacklistas direkt om du skickar till någon av de stora aktörerna.

Finns det någon lista över vad för extremt strikta regler som gäller då?

Jag har själv varit nyfiken på att få till att kunna skicka mejl lokalt (dvs., egen SMTP-server, bryr mig ej om att kunna ta emot med IMAP/POP3) för att kunna testköra saker som kontoaktivering via mejl och annat över mejl än att behöva göra det från webbhotells mejlsevrar för att det är mer praktiskt än att behöva ladda upp samma filer vid testning.

Det "borde vara enkelt" att skapa egen SMTP-server och hypotetiskt talat så skulle det väl till och med gå att kunna "spoofa" avsändarens IP-adress och allt så det ser ut att komma från en riktig SMTP-server? Men nu kommer vi in på troligen icke-tillåtet diskussionsämne så jag lämnar det där!

Mvh,
WKL.

Visa signatur

<WKL:"En kodrad i taget!";/>

Permalänk
Medlem
Skrivet av WebbkodsLärlingen:

Finns det någon lista över vad för extremt strikta regler som gäller då?

Jag har själv varit nyfiken på att få till att kunna skicka mejl lokalt (dvs., egen SMTP-server, bryr mig ej om att kunna ta emot med IMAP/POP3) för att kunna testköra saker som kontoaktivering via mejl och annat över mejl än att behöva göra det från webbhotells mejlsevrar för att det är mer praktiskt än att behöva ladda upp samma filer vid testning.

Det "borde vara enkelt" att skapa egen SMTP-server och hypotetiskt talat så skulle det väl till och med gå att kunna "spoofa" avsändarens IP-adress och allt så det ser ut att komma från en riktig SMTP-server? Men nu kommer vi in på troligen icke-tillåtet diskussionsämne så jag lämnar det där!

Mvh,
WKL.

Skulle inte vilja påstå att det inte är några extrema strikta regler.... snarare vettiga.
Har själv hostat min egen mail/smtp server i många år nu utan problem att hamna i spamfilter, jag relayar via bahnhofs smtp som man får använda när man är kund.
Se bara till att skaffa korrekt spf record, dkim och dmarc är jag inte 100 på om du behöver sätta upp för din domän

Visa signatur

Citera om du vill ha svar :)

Permalänk
Skrivet av Pelle:

Skulle inte vilja påstå att det inte är några extrema strikta regler.... snarare vettiga.
Har själv hostat min egen mail/smtp server i många år nu utan problem att hamna i spamfilter, jag relayar via bahnhofs smtp som man får använda när man är kund.
Se bara till att skaffa korrekt spf record, dkim och dmarc är jag inte 100 på om du behöver sätta upp för din domän

Ursäkta att jag frågar, men vad är "korrekt spf record, dkim och dmarc"? Jag ska fråga chatGPT om saken då jag inte kan hela processen med SMTP-protokollet och/eller hur man kommer igång med det.

Så med "relaya" betyder att du skickar det till Bahnhof som då skickar det vidare?

Mvh,
WKL.

Visa signatur

<WKL:"En kodrad i taget!";/>

Permalänk
Medlem
Skrivet av WebbkodsLärlingen:

Ursäkta att jag frågar, men vad är "korrekt spf record, dkim och dmarc"? Jag ska fråga chatGPT om saken då jag inte kan hela processen med SMTP-protokollet och/eller hur man kommer igång med det.

Så med "relaya" betyder att du skickar det till Bahnhof som då skickar det vidare?

Mvh,
WKL.

SPF: Anger de servrar och domäner som är auktoriserade att skicka e-post åt din organisation.

DKIM: Lägger till en digital signatur i alla utgående meddelanden så att mottagande servrar kan verifiera att meddelandet faktiskt kommer från organisationen.

DMARC : Visar mottagande servrar vad de ska göra med utgående meddelanden från din organisation som inte godkänns i SPF eller DKIM.

Visa signatur

Citera om du vill ha svar :)

Permalänk
Geeks
Jobbar med data

Har tyvärr inga tips till OP om varför det krånglar, vi behöver lite error loggar för att kunna felsöka det hela. När det kommer till Gmail så kan man se alla deras riktlinjer på deras hjälpsida; Email sender guidelines. Fler leverantörer har börjat anammat samma (väldigt snarlika) i samband med att Google annonserade dem.

Permalänk
Medlem
Skrivet av DevLeader:

Hej,
Jag håller på med en hemsida med login funktion som förutom användarnamn och lösenord även ska ha ett verifierings-email varje gång som man försöker logga in. Det ska vara en random funktion som ska göra ett antal tecken som man ska få i sin epost-inkorg när man försöker logga in. Sen ska man skriva in det på hemsidan för att kunna logga in.

Jag håller på med projeketet med XAMPP och nu tänkte jag bara pröva att använda Mercury mail funktionen för att skicka e-post mellan 2 användare på localhost (127.0.0.1). Fast det funkar inte trots att jag följt denna guide-video exakt: https://www.youtube.com/watch?v=7dcaUUlsMOg. Det står att jag skickat mailen fast de kommer aldrig till inkorgen på den andra användaren.

Hur fixar jag att maila mellan 2 användare som i videon?
Kan jag maila med en php funktion endå till mig själv trots att just det där inte fungerar (kanske med gmail)?

Installera PHPMailer via antingen Composer (rekommenderat) eller att ladda hem filerna från GitHub och lägg dom i samma katalog som ditt webbsideprojekt (fast i en egen katalog, såklart). När detta är gjort, kopiera det simpla exemplet (du hittar en mer beskrivande kod här) och klistra in det i en separat fil, säg mailer.php. Glöm inte att inkludera de nödvändiga filerna.

När detta är gjort och alla uppgifter är korrekta, gå till filen i webbläsaren och om allt har gått rätt till, ska du få ett e-postmeddelande till din e-post (om du angav din egna e-postadress som mottagare).

Sen gällande att skicka en tvåstegsverifikationskod (TFA) till användarens e-postadress. Detta är inte att rekommendera då det kan ta lång tid innan mottagaren får e-postmeddelandet, beroende på vad för e-posttjänst denne använder. Alldeles för många webbsidor använder sig av TFA via e-post och det är oftast ett enormt irritationsmoment! Som ett vilt exempel; det tar minst 1 minut för MyHeritage att skicka koden till en Gmail-adress. Väldigt många personer som är ute på internet nu för tiden är alldeles för otåliga för och vänta såpass länge, därav irritationsmomentet.

Vad som rekommenderas istället (och som alla borde använda) är att låta en TFA-app generera fram koderna, som till exempel Aegis. Då får användaren tillgång till koden i deras egna takt. Använd dig av till exempel TwoFactorAuth av RobThree på GitHub för och generera fram en kodsträng (likt ett lösenord) som användaren antingen skannar av via en QR-kod, eller kopierar och klistrar in kodsträngen, i TFA-appen.

Det är inget krav att låta användaren få tvåstegsverifikationskoden via en TFA-app, men det är mycket rekommenderat!

Korrigerat
Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me /device:desktop. Andra projekt: Keizai, Koroth & Serenum.