Skicka formulär till e-post PHP

Trädvy Permalänk
Medlem
Registrerad
Feb 2017

Skicka formulär till e-post PHP

Nu är jag igång igen......vet inte hur många olika inlägg jag har gått igenom men jag får ändå inte till det här.

Jag har skapat ett formulär på min hemsida, där man ska fylla i namn, e-post, vilken tjänst man behöver och så en textruta där man skriver sitt meddelande. En knapp på det för att skicka till min e-post.

Jag har inte arbetat med PHP, men tänkte att lite grundläggande så skulle det här gå fint.....nu är jag snart tom på huvudet av allt hår jag har rivit av mig

I min contact.html fil står följande;

<div class="container">
<form name="förfrågan" method="post" action="contact1.php" >

<label for="fname">Namn</label>
<input type="text" id="fname" name="firstname" placeholder="Ditt namn">

<label for="lname">Efternamn</label>
<input type="text" id="lname" name="lastname" placeholder="Ditt efternamn">

<input type="text" id="epost" name="epost" placeholder="Din epost">

<label for="tjänst">Tjänst</label>
<select id="tjänst" name="tjänst">
<option value="bröllop">Bröllop</option>
<option value="förlovning">Förlovning</option>
<option value="momtobe">MomToBe</option>
<option value="lovecouple">LoveCouple</option>
<option value="porträtt">Porträtt</option>
<option value="övrigt">Övriga Uppdrag</option>
</select>

<label for="subject">Meddelande</label>
<textarea id="subject" name="subject" placeholder="Skriv ditt meddelande här..." style="height:200px"></textarea>

<input type="submit" value="Submit">

</form>
</div>

Jag tolkar det som att action= "contact1.php" anropar php filen jag har skapat, eller har jag missförstått det??

I min contact1.php står det:
<!DOCTYPE html>
<html>

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>contact1</title>
</head>

<body>
<?php
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "http://cpsrv16.misshosting.com/"; // SMTP server
$mail->From = "epost";
$mail->AddAddress("veronica@lindwephotoweb.se");

$mail->Subject = "first mailing";
$mail->Body = "hi ! \n\n this is First mailing I made myself with PHPMailer !";
$mail->WordWrap = 50;

if(!$mail->Send())
{
echo "Message was not sent";
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent";
}
?>

</body>

</html>

Jag hittade den här koden och har bytt ut till min mail osv.....

Vad är det som jag har missat?

Trädvy Permalänk
Medlem
Plats
Uppsala
Registrerad
Maj 2013

$mail->Host ser ut som en webbserver. Har du provat ändra till bara:

$mail->Host = "cpsrv16.misshosting.com/"; // SMTP server

Trädvy Permalänk
Medlem
Registrerad
Feb 2017

@Aene: Provade, men det fungerar inte

Trädvy Permalänk
Medlem
Registrerad
Feb 2017

Det som händer är att jag får en tom sida, och inget mer.

Inget i eposten som kommer heller.....

Trädvy Permalänk
Moderator
Registrerad
Aug 2007

Host måste sättas till en domän som har en SMTP-server. Adressen ska anges utan http:// och avslutande /. Tex: $mail->Host = "cpsrv16.misshosting.com";

Hyr du en VPS på misshosting och heter den i så fall cpsrv16? Har du i så fall installerat en SMTP-server på den maskinen? misshosting har annars en SMTP-server på mail.misshosting.com som då kräver att du skickar på port 465 vilket jag är osäker på om PHP's default mailclass fixar.

Enligt Google behöver du sätta följande för att skicka över port 465. Du måste så klart byta ut adresserna.
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Username = "myemail@gmail.com";
$mail->Password = "**********";
$mail->Port = "465";

Använd gilla för att markera nyttiga inlägg!

Trädvy Permalänk
Medlem
Registrerad
Feb 2017

@giplet: Jag ska prova.
Jag var i kontakt med misshosting och de gav mig den adressen för SMTP..... de kanske inte förstod vad jag var ute efter

Trädvy Permalänk
Medlem
Plats
Hammarö
Registrerad
Jan 2004

Testa att använda dig av Googles SMTP istället och se om det funkar bättre. Har själv har problem med SMTP tidigare, men Googles lösning funkar hur bra som helst.

Citera mig om du önskar ett snabbare svar.
Min blogg

Trädvy Permalänk
Moderator
Registrerad
Aug 2007
Skrivet av VeronicaL:

@giplet: Jag ska prova.
Jag var i kontakt med misshosting och de gav mig den adressen för SMTP..... de kanske inte förstod vad jag var ute efter

Fick du adressen inkl. http:// så vet de nog inte vad du var ute efter. Annars ska det ju funka. Kan dock vara bra att kolla upp ifall servern kräver SSL och/eller inloggningsuppgifter.

Ett annat alternativ är att logga in på din sida på misshosting.com och kolla inställningar för mail där. Enligt deras supportsidor ska det finnas uppgifter i din profil.

Edit: Får du fortfarande bara upp en tom sida? Det tyder i så fall på att något går snett i koden innan du kommer ner till echo raderna längst ner. Min gissning är i så fall att den inte lyckas ladda phpmailer alternativt att den laddar en version som inte stödjer något av det du försöker göra. Kolla om du kan slå på debug info i PHP så att den skickar felmeddelande till webläsaren när du kör sidan. Glöm bara inte att slå av den funktionen när du felsökt klart.
http://stackoverflow.com/questions/1053424/how-do-i-get-php-e...

Använd gilla för att markera nyttiga inlägg!

Trädvy Permalänk
Inaktiv
Registrerad
Mar 2010

Förutom vad som redan sagts angående e-post server måste du även byta ut denna rad:

$mail->From = "epost";

Til:

$mail->From = $_REQUEST[epost];

Det kan också vara bra om du validera att man fyllt i alla uppgifter, det kan du göra med javascript om du redan använder det, men kan vara bra att inte anropa något i din postfunktion om det inte finns något att göra.

Typ lägga in hela din php kod i följande, detta är den enklaste formen av "validering" inte validering av innehållet.

if ($_REQUEST[epost]) {

// Din php kod

}

Trädvy Permalänk
Medlem
Registrerad
Feb 2017

Jag ska kika på det ni alla skriver och se om jag kan få till det.

Jag kikade i felrapporten som låg i mitt webbhotell, och då säger den att denna inte funkar: require("class.phpmailer.php");

Vart ska den mer ligga? I CSS filen?

Med vänlig hälsning
Veronica

Trädvy Permalänk
Moderator
Registrerad
Aug 2007
Skrivet av VeronicaL:

Jag ska kika på det ni alla skriver och se om jag kan få till det.

Jag kikade i felrapporten som låg i mitt webbhotell, och då säger den att denna inte funkar: require("class.phpmailer.php");

Vart ska den mer ligga? I CSS filen?

Med vänlig hälsning
Veronica

Felmeddelandet betyder att den inte hittar phpmailer som du försöker använda. Phpmailer är inte en del av php, det är ett tilläggspaket man måste installera. Antingen har din ISP redan installerat det, eller måste du göra det själv.

https://github.com/PHPMailer/PHPMailer

Använd gilla för att markera nyttiga inlägg!

Trädvy Permalänk
Medlem
Registrerad
Feb 2017

@giplet: Aha, ja men då förstår jag. Jag och webbhotellet missförstod varandra på ännu en punkt
Då ska jag fortsätta jobba, det ska ju gå att lösa

Tack för hjälpen! Återkommer om jag har skaffat mig en peruk och jag är nära gränsen till galenskap