SMTP-authenticatie toevoegen formulieren
Onlangs heeft mijn hosting bedrijf een wijziging doorgevoerd, namelijk; dat SMTP-authenticatie verplicht is in formulieren.
Probleem is dat ik er niet uit kom, heb internet afgeseurd van dingen geprobeerd, maar ik heb te weinig kennis van php.
Hieronder de 2 code stukken voor mijn 2 formulieren waar de smtp in moet worden verwerkt (nu dus zonder smtp)
Hoe moet de code zijn?
Code voor de contractformulier;
-------------------------------------------------------------------------------------------------------
En hieronder de code voor het lidmaatschap formulier;
-------------------------------------------------------------------------------------------------------
<head><title></title></head>
Probleem is dat ik er niet uit kom, heb internet afgeseurd van dingen geprobeerd, maar ik heb te weinig kennis van php.
Hieronder de 2 code stukken voor mijn 2 formulieren waar de smtp in moet worden verwerkt (nu dus zonder smtp)
Hoe moet de code zijn?
Code voor de contractformulier;
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$email = $_POST['email'];
$query = $_POST['message'];
$email_from = $name.'<'.$email.'>';
$to="[email protected]";
$subject="Bericht contactformulier SVN";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ".$email_from."\r\n";
$message="
Naam:
$name
<br>
Email:
$email
<br>
Bericht:
$query
";
if(mail($to,$subject,$message,$headers))
header("Location:../contact.php?msg=Bedankt voor uw bericht.");
else
header("Location:../contact.php?msg=Error Email niet verzonden!");
//contact:[email protected]
}
?>
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$email = $_POST['email'];
$query = $_POST['message'];
$email_from = $name.'<'.$email.'>';
$to="[email protected]";
$subject="Bericht contactformulier SVN";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ".$email_from."\r\n";
$message="
Naam:
$name
<br>
Email:
<br>
Bericht:
$query
";
if(mail($to,$subject,$message,$headers))
header("Location:../contact.php?msg=Bedankt voor uw bericht.");
else
header("Location:../contact.php?msg=Error Email niet verzonden!");
//contact:[email protected]
}
?>
-------------------------------------------------------------------------------------------------------
En hieronder de code voor het lidmaatschap formulier;
-------------------------------------------------------------------------------------------------------
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Actions.php
* bestelling
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
$mode = $_GET["mode"];
if($mode == "Bestelling"){
echo"<html>
<head>
<title>Lidmaatschap aanmelding</title>
</head>
<body>
Uw bericht wordt verzonden...
</body>
</html>";
$naam = $_POST["naam"];
$adres = $_POST["adres"];
$postcode1 = $_POST["postcode1"];
$woonplaats = $_POST["woonplaats"];
$land = $_POST["land"];
$telefoonnummer = $_POST["telefoonnummer"];
$email = $_POST["email"];
$bank = $_POST["bank"];
$hond = $_POST["hond"];
$geslacht = $_POST["geslacht"];
$stamboom = $_POST["stamboom"];
$type = $_POST["type"];
$datum = $_POST["datum"];
$vader = $_POST["vader"];
$moeder = $_POST["moeder"];
$fokker = $_POST["fokker"];
$opmerkingen = nl2br($_POST["opmerkingen"]);
$afzender = "$naam <$email>";
$aan = "<[email protected]>";
$onderwerp = "Lidmaatschap aanmelding van $naam";
$msg = "Lidmaatschap aanmelding op ikke: $naam
<br/><strong style='width: 160px;'>naam:</strong> $naam
<br/><strong style='width: 160px;'>adres:</strong> $adres
<br/><strong style='width: 160px;'>postcode:</strong> $postcode1
<br/><strong style='width: 160px;'>woonplaats:</strong> $woonplaats
<br/><strong style='width: 160px;'>land:</strong> $land
<br/><strong style='width: 160px;'>telefoonnr:</strong> $telefoonnummer
<br/><strong style='width: 160px;'>email:</strong> $email
<br/><strong style='width: 160px;'>bank:</strong> $bank
<br/><strong style='width: 160px;'>naam van hond:</strong> $hond
<br/><strong style='width: 160px;'>geslacht:</strong> $geslacht
<br/><strong style='width: 160px;'>stamboomnummer:</strong> $stamboom
<br/><strong style='width: 160px;'>stamboom type:</strong> $type
<br/><strong style='width: 160px;'>geboortedatum:</strong> $datum
<br/><strong style='width: 160px;'>vader van de hond:</strong> $vader
<br/><strong style='width: 160px;'>moeder van de hond:</strong> $moeder
<br/><strong style='width: 160px;'>fokker:</strong> $fokker
<br/><strong style='width: 160px;'>extra opmerkingen:</strong> $opmerkingen";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: $afzender\r\n";
$mail = mail($aan, $onderwerp, $msg, $headers);
if($mail){
echo "<script type='text/javascript'>location.href='mailing.html';</script>";
}else{
echo "<script type='text/javascript'>location.href='error.html';</script>";
}
}
?>
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Actions.php
* bestelling
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
$mode = $_GET["mode"];
if($mode == "Bestelling"){
echo"<html>
<head>
<title>Lidmaatschap aanmelding</title>
</head>
<body>
Uw bericht wordt verzonden...
</body>
</html>";
$naam = $_POST["naam"];
$adres = $_POST["adres"];
$postcode1 = $_POST["postcode1"];
$woonplaats = $_POST["woonplaats"];
$land = $_POST["land"];
$telefoonnummer = $_POST["telefoonnummer"];
$email = $_POST["email"];
$bank = $_POST["bank"];
$hond = $_POST["hond"];
$geslacht = $_POST["geslacht"];
$stamboom = $_POST["stamboom"];
$type = $_POST["type"];
$datum = $_POST["datum"];
$vader = $_POST["vader"];
$moeder = $_POST["moeder"];
$fokker = $_POST["fokker"];
$opmerkingen = nl2br($_POST["opmerkingen"]);
$afzender = "$naam <$email>";
$aan = "<[email protected]>";
$onderwerp = "Lidmaatschap aanmelding van $naam";
$msg = "Lidmaatschap aanmelding op ikke: $naam
<br/><strong style='width: 160px;'>naam:</strong> $naam
<br/><strong style='width: 160px;'>adres:</strong> $adres
<br/><strong style='width: 160px;'>postcode:</strong> $postcode1
<br/><strong style='width: 160px;'>woonplaats:</strong> $woonplaats
<br/><strong style='width: 160px;'>land:</strong> $land
<br/><strong style='width: 160px;'>telefoonnr:</strong> $telefoonnummer
<br/><strong style='width: 160px;'>email:</strong> $email
<br/><strong style='width: 160px;'>bank:</strong> $bank
<br/><strong style='width: 160px;'>naam van hond:</strong> $hond
<br/><strong style='width: 160px;'>geslacht:</strong> $geslacht
<br/><strong style='width: 160px;'>stamboomnummer:</strong> $stamboom
<br/><strong style='width: 160px;'>stamboom type:</strong> $type
<br/><strong style='width: 160px;'>geboortedatum:</strong> $datum
<br/><strong style='width: 160px;'>vader van de hond:</strong> $vader
<br/><strong style='width: 160px;'>moeder van de hond:</strong> $moeder
<br/><strong style='width: 160px;'>fokker:</strong> $fokker
<br/><strong style='width: 160px;'>extra opmerkingen:</strong> $opmerkingen";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: $afzender\r\n";
$mail = mail($aan, $onderwerp, $msg, $headers);
if($mail){
echo "<script type='text/javascript'>location.href='mailing.html';</script>";
}else{
echo "<script type='text/javascript'>location.href='error.html';</script>";
}
}
?>
<head><title></title></head>
Waarom gebruik je geen phpMailer?
Dit is een volledig geïntegreerde formulier in mijn html website en de formulieren heb ik zelf in mekaar geflanst.
phpMailer heb ik naar gekeken, maar dat is voor mij geen optie
phpMailer heb ik naar gekeken, maar dat is voor mij geen optie
Om welke reden is dat geen optie? Je kan er eenvoudig SMTP-authenticatie instellen.
De mail() functie zelf ondersteunt dit overigens niet.
De mail() functie zelf ondersteunt dit overigens niet.
Gewijzigd op 29/03/2017 17:46:08 door - Ariën -
Ik wil graag dat wat ik nu heb weer werkt, er zijn nog meer en grotere formulieren dan dit, maar als ik de code voor deze 2 weet kom ik er wel uit.
Wat bedoel je met; De mail() functie zelf ondersteunt dit overigens niet.
Wat bedoel je met; De mail() functie zelf ondersteunt dit overigens niet.
De standaard mail()-functie ondersteunt geen SMTP-authenticatie. Dus de beste oplossing is om te grijpen naar de PEAR-packages of phpMailer.
Die laatste is wel snel te implementeren. Met het bijkomende voordeel dat je jezelf niet hoeft te bekommeren om de headers.
Die laatste is wel snel te implementeren. Met het bijkomende voordeel dat je jezelf niet hoeft te bekommeren om de headers.
Gewijzigd op 29/03/2017 18:00:23 door - Ariën -
Dus wat ik wil kan niet? bedoel je dat?
Het kan niet op de manier zoals jij toepast.
phpMailer is veel handiger in gebruik, makkelijker te debuggen en eveneens snel te implementeren.
phpMailer is veel handiger in gebruik, makkelijker te debuggen en eveneens snel te implementeren.
Als je phpMailer niet wilt gebruiken zou ik voor PEAR kiezen, is heel simpel en vereist nauwelijks aanpassing van je huidige code. Vervang het mail gedeelte wat je nu hebt hierdoor, en vervang
$smtp_van
$smtp_naar
$onderwerp
$bericht
door je eigen variabelen.
en
$host
$username
$password
door jouw smtp gegevens
Toevoeging op 29/03/2017 20:03:11:
O, en je moet even de pear mail class includen. Als je host pear geinstalleerd heeft dan is dit stukje code daarvoor afdoende:
include_once ('Mail.php');
$smtp_van
$smtp_naar
$onderwerp
$bericht
door je eigen variabelen.
en
$host
$username
$password
door jouw smtp gegevens
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$headers = array ('MIME-Version' => '1.0rn',
'Content-Type' => "text/html; charset=ISO-8859-1rn",
'From' => $smtp_van,
'To' => $smtp_naar,
'Subject' => $onderwerp );
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $wachtwoord));
$mail = $smtp->send($smtp_naar, $headers, $bericht);
if (PEAR::isError($mail)) {
code voor errormelding
} else {
code voor geslaagd
}
?>
$headers = array ('MIME-Version' => '1.0rn',
'Content-Type' => "text/html; charset=ISO-8859-1rn",
'From' => $smtp_van,
'To' => $smtp_naar,
'Subject' => $onderwerp );
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $wachtwoord));
$mail = $smtp->send($smtp_naar, $headers, $bericht);
if (PEAR::isError($mail)) {
code voor errormelding
} else {
code voor geslaagd
}
?>
Toevoeging op 29/03/2017 20:03:11:
O, en je moet even de pear mail class includen. Als je host pear geinstalleerd heeft dan is dit stukje code daarvoor afdoende:
include_once ('Mail.php');
Sorry ik snap er niets van :(
phpMailer krijg ik niet geïnstalleerd, bestanden geupload maar nergens zie ik een installatie pagina
En pear (wat ik voor mijn vraag op het forum ook al had geprobeerd) stuurt niets, ik krijg alleen een wit scherm te zien na verzending.
phpMailer krijg ik niet geïnstalleerd, bestanden geupload maar nergens zie ik een installatie pagina
En pear (wat ik voor mijn vraag op het forum ook al had geprobeerd) stuurt niets, ik krijg alleen een wit scherm te zien na verzending.
Er is geen installatie nodig voor phpMailer.
Uploaden, de class aanroepen, de functies ervan en klaar.
Bekijk de manual eens.
Uploaden, de class aanroepen, de functies ervan en klaar.
Bekijk de manual eens.
Je moet alleen het bestand van PHPMailer in je eigen script includen, niets met een installatie pagina.
Handleiding heb ik gezien, maar ik snap niets van php of termen die gebruikt worden.
Als ik het heeeel simpel zeg, ik lees bla bla bla.
Ik snap er niets van :(
Als ik het heeeel simpel zeg, ik lees bla bla bla.
Ik snap er niets van :(
Wat snap je dan niet als ik vragen mag?
Heb je de samples al gezien? En ik denk datje hier het meeste aan hebt.
Heb je de samples al gezien? En ik denk datje hier het meeste aan hebt.
Gewijzigd op 29/03/2017 22:23:53 door - Ariën -
Als je er zelf niets van snapt heb je twee keuzes:
1) Leerboeken pakken en zorgen dat je het wel gaat begrijpen
2) Opdracht verlenen aan iemand die het wel begrijpt (Vacature plaatsen)
1) Leerboeken pakken en zorgen dat je het wel gaat begrijpen
2) Opdracht verlenen aan iemand die het wel begrijpt (Vacature plaatsen)
Gewijzigd op 29/03/2017 23:46:04 door Frank Nietbelangrijk
@ beheerder
ik weet niet wat ik moet doen, ik zie allemaal tekst en voorbeelden, maar ik weet niet wat waar moet en hoe en waarom en wat ik nog moet aanpassen en wat niet en hoe en ga zo maar even door.
Ik hoopte op een want simpele oplossing ala pear of iets dergelijks wat ik even kon kopiëren en erin kon plakken
Maar dit gaat mij me pet te boven
@frank
Ik had gisteren al op diverse plaatsen offertes aangevraagd, 1 reactie gehad (5 uur 450 euro) (oke als ik het door een bedrijf laat doen dan helemaal even doorlichten en verbeteren enzo), maar daar schrok ik zo van dat ik probeer het zelf te doen, maar helaas......
ik weet niet wat ik moet doen, ik zie allemaal tekst en voorbeelden, maar ik weet niet wat waar moet en hoe en waarom en wat ik nog moet aanpassen en wat niet en hoe en ga zo maar even door.
Ik hoopte op een want simpele oplossing ala pear of iets dergelijks wat ik even kon kopiëren en erin kon plakken
Maar dit gaat mij me pet te boven
@frank
Ik had gisteren al op diverse plaatsen offertes aangevraagd, 1 reactie gehad (5 uur 450 euro) (oke als ik het door een bedrijf laat doen dan helemaal even doorlichten en verbeteren enzo), maar daar schrok ik zo van dat ik probeer het zelf te doen, maar helaas......
Heb je al wat geprobeerd, of sta je alleen maar te staren naar de moeilijk codes die je wellicht niet zal snappen?
Download heel phpMailer eens, en speel eens met de example.
Download heel phpMailer eens, en speel eens met de example.
90 euro per uur is wel erg fors Anton. Ik weet zeker dat je stukken goedkoper uit kunt zijn als je hier een vacature plaatst.
En anders kan je er gewoon zelf mee spelen. De sample geeft duidelijk aan waar je de nodige gegevens in moet voeren. Zelfs het grijze commentaar is duidelijk.
Gewijzigd op 30/03/2017 00:06:15 door - Ariën -
Frank Nietbelangrijk op 30/03/2017 00:00:54:
90 euro per uur is wel erg fors Anton. Ik weet zeker dat je stukken goedkoper uit kunt zijn als je hier een vacature plaatst.
90 euro per uur fors? Noem het maar gewoon afzetten. Vooral met dit, om een PHP formulier om te bouwen naar SMTP.. Is nog geen half uurtje werk en hun rekenen er 5 voor. Geen idee welk bedrijf dat is maar die probeert gewoon even makkelijk geld te verdienen...
@topicstarter, toevallig versio waar je host?
tip om 450 euro in een uur te verdienen:
Begin een scriptje genaamd test.php.
Download de 2 of 3 scripts waaruit PHPMailer eigenlijk maar bestaat.
volg een aantal van de voorbeelden op de phpmailer site. http://phpmailer.worxware.com/?pg=examples
Een van de voorbeelden gaat zelfs over smtp...
Je zult zien dat je test.php veel korter en eenvoudiger uit kan zien dan jouw script. En dan doel ik met name op de header-regels om mime-types, afzender, CC, BCC en karakterset in te stellen.
Met een uurtje zou je wel een paar van die voorbeelden hebben kunnen doorlopen.
Daarna pas je PHPMailer toe in jouw scripts.
Voila, 450 euro verdiend... :-)
En als je nog een site op die manier bijwerkt, heb je zelfs 900 euro verdiend.
Begin een scriptje genaamd test.php.
Download de 2 of 3 scripts waaruit PHPMailer eigenlijk maar bestaat.
volg een aantal van de voorbeelden op de phpmailer site. http://phpmailer.worxware.com/?pg=examples
Een van de voorbeelden gaat zelfs over smtp...
Je zult zien dat je test.php veel korter en eenvoudiger uit kan zien dan jouw script. En dan doel ik met name op de header-regels om mime-types, afzender, CC, BCC en karakterset in te stellen.
Met een uurtje zou je wel een paar van die voorbeelden hebben kunnen doorlopen.
Daarna pas je PHPMailer toe in jouw scripts.
Voila, 450 euro verdiend... :-)
En als je nog een site op die manier bijwerkt, heb je zelfs 900 euro verdiend.




