Problemen met mailformulier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Stef Segers

Stef Segers

22/01/2008 17:15:00
Quote Anchor link
Hallo,

Ik probeer op alle mogelijke manieren een mail formulier te maken.
Ik heb vele scripts geprobeerd. Formhandler.nl kom ik niet uit, maar ook php mailer veel te uitgebreid voor wat ik wil.
Het is simpel. 5 velen, naam, email bericht bedrijfsnaam en submit. Meer niet.

Nou heb ik een paar scripts die wel zeggen dat ze mailen, maar de mail komt niet aan.
Toen mijn .mac mail geprobeerd en dat gaat wel goed.
Blijkbaar gaat er met het script iets niet goed en wordt de mail als SPAM gezien.

Hier een script wat ik op phphulp.nl heb gevonden
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
if (isset($_POST['address']) && isset($_POST['subject']) && isset($_POST['body'])) {
  if ($_POST['address'] == "" || $_POST['body'] == "") {
    print_error();
    print_form();
  }
else {
mail("[email protected]", $_POST['subject'], $_POST['body'] . "\n" . $_POST['address']);
    print_sent();
  }
}
else {
  print_form();
}

function
print_form() {
?>
  
<table width=100% height=100%>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST">
<table>
<tr>
      <td>Je e-mail Address:</td>
      <td><input type="text" name="address"></td></tr>
<tr>
      <td>Je naam</td>
      <td><input type="text" name="subject"></td></tr>
<tr><td colspan=2><textarea cols=80 rows=12 name="body" class="text">wat er in het grote vakje komt te staan</textarea></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" value="Zend de email"></td></tr>
</form>
</table>
<?  
}

function
print_error() {
?>

<table width=100%>
<tr><td>Je hebt iets overgeslagen!</td></tr>
</table>
<?
}

function
print_sent() {
?>

<table width=100%>
<tr><td>Bericht verzonden!</td></tr>
</table>
<?
}
?>


Ben benieuwd of iemand mij een oplossing kan bieden. Belangrijk, geen poespas maar simple

Stef
 
PHP hulp

PHP hulp

27/11/2024 07:06:56
 
Pieter Joordens

Pieter Joordens

22/01/2008 17:23:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

$to
= '[email protected]';
$subject = 'Test';
$message = 'Hallo dit is een test';
$headers = "MIME_-Version: 1.0\n";
$headers.= "Content-Type: text/html; charset=iso-8859-1\n";
$headers.= "From: email <[email protected]>\n";
$headers.= "Return-path: [email protected]\n";

mail($to, $subject, $message, $headers);
?>

dat is de opbouw van een mail functie.
als je er 2 wil sturen: naar je zelf en naar het geposte email adres moet je ook 2 functies gebruiken
Gewijzigd op 01/01/1970 01:00:00 door Pieter Joordens
 
Stef Segers

Stef Segers

22/01/2008 17:26:00
Quote Anchor link
Hoi Pieter,

Bedankt voor je snelle reactie.
Betekend dit als ik

mail("[email protected]", $_POST['subject'], $_POST['body'] . "\n" . $_POST['address']);

gebruik ik een fout maak? Volgens mij is adress toegevoegd om deze als afzender erin te plaatsen.

Wat zou ik volgens jouw moeten aanpassen? En als dat gebeurd is zal hij dan wel door de spamserver heen gaan?

S.
 
- SanThe -

- SanThe -

22/01/2008 17:27:00
Quote Anchor link
Hoe meer en duidelijker je de headers maakt, des te minder kans dat het als spam wordt gezien. Vergelijk de headers van 'correcte' mailtjes eens met de headers van de mail uit jouw script.
 
Pieter Joordens

Pieter Joordens

22/01/2008 17:28:00
Quote Anchor link
hoi stef

ik zou eerst zoals ik net ge edit heb die vars definen voor de mailfunctie, dan krijg je er geen fouten in ;)

Grtz

Quote:
edit:
@SanThe: Wat voor headers zou jij nog meer in een mail() functie zetten?
Gewijzigd op 01/01/1970 01:00:00 door Pieter Joordens
 
Joren de Wit

Joren de Wit

22/01/2008 17:38:00
Quote Anchor link
Nogmaals de tip om met een klasse als Swift Mailer te gaan werken. Je code wordt er uiteindelijk zelfs korter op dan dat je mail() functie van PHP gebruikt.

Een voorbeeld van een contactformulier waarin deze klasse verwerkt zit vind je hier:

Contactformulier met Swift Mailer

Het is enkel een kwestie van de bestanden eenmalig downloaden, uitpakken en uploaden naar je server. Vervolgens is het verzenden van een mailtje dat in 99% van de gevallen juist aankomt een fluitje van een cent.
 
Stef Segers

Stef Segers

22/01/2008 17:39:00
Quote Anchor link
Hoi Pieter,

Bedankt voor je reactie. Het lijkt er een beetje op.
Wat ik nu nog wel mis is in de headers het From: adres wat ingevuld is in het formulier en hetzelfde geld voor Return-path. Deze zou ik willen ophalen uit het forumlier.

Ik heb inmiddels het complete forumlier wat ik wil gebruiken erin geplaatst. Maar wanneer ik mail gebeurt er niets.

Bijgaand de aangepaste code van de pagina:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
if (isset($_POST['address']) && isset($_POST['subject']) && isset($_POST['body'])) {
  if ($_POST['address'] == "" || $_POST['body'] == "") {
    print_error();
    print_form();
  }
else {
$to = '[email protected]';
$subject = 'Training via de website';
$message = $_POST['body'];
$headers = "MIME_-Version: 1.0\n";
$headers.= "Content-Type: text/html; charset=iso-8859-1\n";
$headers.= "From: [email protected]\n";
$headers.= "Return-path: [email protected]\n";

mail($to, $subject, $message, $headers);
  print_sent();
  }
}
else {
  print_form();
}

function
print_form() {
?>
  
<table width=100% height=100%>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST">
    <table width="100%" border="0" cellspacing="2" cellpadding="2">
      <tr>
        <td valign="top">Bedrijfsnaam:</td>
        <td valign="top"><input type="text" name="bedrijfsnaam" /></td>
        <td rowspan="4" valign="top"><textarea cols="40" rows="6" name="body" class="text">Graag een korte omschrijving van uw wensen</textarea></td>
      </tr>
      <tr>
        <td valign="top">E-mailadres:</td>
        <td valign="top"><input type="text" name="e-mail" /></td>
      </tr>
      <tr>
        <td valign="top">Volledige naam:</td>
        <td valign="top"><input type="text" name="naam" /></td>
      </tr>
      <tr>
        <td valign="top">Telefoon:</td>
        <td valign="top"><input type="text" name="telefoon" /></td>
      </tr>
      <tr>
        <td colspan="2" valign="top"><input type="submit" value="Verstuur de email" /></td>
        <td valign="top">&nbsp;</td>
      </tr>
     </table>
</form>
<?  
}

function
print_error() {
?>

<table width=100%>
<tr><td>Je hebt iets overgeslagen!</td></tr>
</table>
<?
}

function
print_sent() {
?>

<table width=100%>
<tr><td>Bericht verzonden!</td></tr>
</table>
<?
}
?>
 
Stef Segers

Stef Segers

22/01/2008 17:47:00
Quote Anchor link
hoi Biance,

Super oplossing die SWIFT. Echter heeft mijn server PHP 4.3.4 en kan ik niet upgraden om wat voor reden dan ook :(

Ik las net op je pagina die je stuurde dat het alleen onder php5 werkt?

Verder als ik de code zie sla ik stijl achterover. Niet normaal hoeveel code voor zo iets simpels?

Stef
Gewijzigd op 01/01/1970 01:00:00 door Stef Segers
 
Klaasjan Boven

Klaasjan Boven

22/01/2008 19:54:00
Quote Anchor link
Andere host is een optie. Php 4 is wel erg bejaard zo langzamerhand
 
Joren de Wit

Joren de Wit

22/01/2008 19:57:00
Quote Anchor link
Het enige dat niet aan het script werkt bij PHP versies <5, is de filter om het email adres te controleren. De rest, en daarmee dus ook de implementatie van Swift, werkt wel gewoon...

ps. Veel regels code? Dit zijn nog geen 200 regels en dan heb je al een volledig werkend, veilig contact formulier. Dat vind ik niet veel.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Stef Segers

Stef Segers

22/01/2008 19:58:00
Quote Anchor link
Tjah.. ik werk op mijn eigen mailserver...
Heb al 3 x met 3 verschillende specialisten getracht php5 te installeren... installeren ja.. werken NEE..... terug zetten naar oude versie VEEEL WERK!

MAW..... er moet toch een oplossing zijn?? volgens mij ben ik er bijna
 
Joren de Wit

Joren de Wit

22/01/2008 19:59:00
Quote Anchor link
De oplossing is dus de filter voor de controle van het email adres even vervangen door een andere controle, die wel werkt met PHP<5. De rest van het script werkt zoals gezegd gewoon...
 
Stef Segers

Stef Segers

22/01/2008 19:59:00
Quote Anchor link
Hoi Bianhce,

Zoals ik je al vertelde... de hoeveelheid code die je in je pagina plakt om SWIFT aan de praat te krijgen is echt niet normaal. De omschrijving van SWIFT luid: minder code om mail te versturen dan PHPMailer?

Wat ik nu heb is echt kort... maar nog net niet werkend... volgens mij met kleine aanpassingen ben ik er....

Suggestie?
 
Joren de Wit

Joren de Wit

22/01/2008 20:05:00
Quote Anchor link
Quote:
de hoeveelheid code die je in je pagina plakt om SWIFT aan de praat te krijgen is echt niet normaal.
Ik weet niet wat jij veel vindt, maar 36 regels vind ik niet veel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
require_once $_SERVER['DOCUMENT_ROOT']."/../private/libs/Swift.php";
require_once $_SERVER['DOCUMENT_ROOT']."/../private/libs/Swift/Connection/SMTP.php";

/* De SMTP server die gebruikt wordt om de mail te verzenden, vul hier je eigen server in! */
$oSmtp = new Swift_Connection_SMTP('mail.jorendewit.nl', 26);

/* Eventuele logingegevens voor de server kun je hieronder kwijt: */
// $oSmtp->setUsername('****');
// $oSmtp->setPassword('****');


$oSwift = new Swift($oSmtp);

// Verander hier het emailadres van de ontvanger
$oTo = new Swift_Address('[email protected]');
$oFrom = new Swift_Address($_SESSION['input']['email'], $_SESSION['input']['naam']);

$sSubject = 'Contactbericht van '.$_SESSION['input']['naam'];
$sMessage = '<html>
                <head>
                    <style type="text/css">
                        body { font-family: "Verdana"; }
                        h1 { font-size: 14px; }
                        p { font-size: 11px; }
                    </style>
                </head>
                
                <body>
                    <h1>Contactbericht</h1>
                    <p>Afzender: '
.htmlentities($_SESSION['input']['naam']).'</p>
                    <p>'
.htmlentities($_SESSION['input']['bericht']).'</p>
                </body>
            </html>'
;

$oMessage = new Swift_Message($sSubject, $sMessage, 'text/html');
$oSwift->send($oMessage, $oTo, $oFrom);
?>

Dit zijn de enige regels die betrekking hebben op de Swift Mailer. Het grootste deel hiervan wordt zelfs nog in beslag genomen door het bericht...

De rest van de code in het gegeven script verzorgt onder andere een nette weergave van het formulier en een veilige afhandeling ervan. Dat zijn vrij essentiële dingen die niet mogen ontbreken!

Maar nogmaals, 200 regels code is niet veel! Ik ken genoeg scripts die vele malen groter zijn.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Pieter Joordens

Pieter Joordens

22/01/2008 20:54:00
Quote Anchor link
Stef Segers schreef op 22.01.2008 17:39:
Hoi Pieter,


Wat ik nu nog wel mis is in de headers het From: adres wat ingevuld is in het formulier en hetzelfde geld voor Return-path. Deze zou ik willen ophalen uit het forumlier.

Ik heb inmiddels het complete forumlier wat ik wil gebruiken erin geplaatst. Maar wanneer ik mail gebeurt er niets.


je kan dan toch gewoon gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$headers
.= "From: ".$_POST['naam']." <".$_POST['mail'].">";
?>


en als ik jou was zou ik ook nog de geldigheid van de emailadressen controleren:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(!strstr('@',$mail) && !strstr('.', $mail)){ // controleren of in de string $mail een @ en een punt zit
      echo "geen geldig mailadres";
}
else{
      echo "geldig mailadres";
?>

}
Gewijzigd op 01/01/1970 01:00:00 door Pieter Joordens
 
J V

J V

23/01/2008 00:18:00
Quote Anchor link
Offtopic:
Quote:
Hoi Bianhce,
Je word wel hoog aangeprezen hier ;), maar of je ook mooi kunt zingen betwijfel ik ;)



Volgens mij kan je beter hier je mail mee checken. Zo heb ik het in ieder geval geleerd. Maar er was ook nog zoiets met DNS server enzo wat nog beter was. dat weet Blanche vast wel.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
function check_mail($adres) {  
return ereg("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",$adres);  
}
  
?>
Gewijzigd op 01/01/1970 01:00:00 door J V
 
Stef Segers

Stef Segers

23/01/2008 08:41:00
Quote Anchor link
Hey allen,

bedankt voor alle reacties. Maar op 1 of andere manier wil het toch niet lukken.
Ik heb de code van Jordy + Pieter toegevoegd in mijn huidige code.

De pagina start op: http://www.meandercommunicatie.nl/form.php

1: De mail wordt verstuurd naar mijn .mac account, maar mijn lotsoflegs.nl domein houd m tegen. Dat is dezelfde mailserver als wwaar de website komt te draaien. Dus graag zou ik het wel werken zien als dat kan.

2: Daarbij heb ik de function van de mail check erbij geplaatst, maar als ik een woord invul zonder de @ loopt hij gewoon door!

3: Als laatste wil ik mijn $message samenstellen uit de velden van het forumlier.
Hoe maak ik die op? Zou graag:
naam veld: $_POST['veldnaam']
naam veld2:$_POST['veldnaam2']
volgende regel etc etc

Waar doe ik iets fout?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

function check_mail($email) {  
return ereg("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",$email);  
}
  
 
if (isset($_POST['naam']) && isset($_POST['e-mail']) && isset($_POST['bedrijfsnaam'])) {
  if ($_POST['telefoon'] == "" || $_POST['body'] == "") {
   print_error();
   print_form();
 
}
else {
$to = '[email protected]';
$subject = 'Training via de website';
$message = 'test';
$naam = $_POST['naam'];
$email = $_POST['e-mail'];
$headers = "MIME_-Version: 1.0\n";
$headers.= "Content-Type: text/html; charset=iso-8859-1\n";
$headers.= "Reply-To: \"".$naam."\" <".$email.">\n";
$headers.= "Return-Path: Mail-Error <".$email.">\n";
$headers.= "From: ".$_POST['naam']." <".$_POST['e-mail'].">";

mail($to, $subject, $message, $headers);
  print_sent();
  }
}
else {
  print_form();
}

function
print_form() {
?>

<table width=100% height=100%>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST">
    <table width="100%" border="0" cellspacing="2" cellpadding="2">
      <tr>
        <td valign="top">Bedrijfsnaam:</td>
        <td valign="top"><input type="text" name="bedrijfsnaam" /></td>
        <td rowspan="4" valign="top"><textarea cols="40" rows="6" name="body" class="text">Graag een korte omschrijving van uw wensen</textarea></td>
      </tr>
      <tr>
        <td valign="top">E-mailadres:</td>
        <td valign="top"><input type="text" name="e-mail" /></td>
      </tr>
      <tr>
        <td valign="top">Volledige naam:</td>
        <td valign="top"><input type="text" name="naam" /></td>
      </tr>
      <tr>
        <td valign="top">Telefoon:</td>
        <td valign="top"><input type="text" name="telefoon" /></td>
      </tr>
      <tr>
        <td colspan="2" valign="top"><input type="submit" value="Verstuur de email" /></td>
        <td valign="top">&nbsp;</td>
      </tr>
     </table>
</form>
<?  
}

function
print_error() {
?>

<table width=100%>
<tr><td>Je hebt iets overgeslagen!</td></tr>
</table>
<?
}

function
print_sent() {
?>

<table width=100%>
<tr><td>Bericht verzonden!</td></tr>
</table>
<?
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Stef Segers
 
- SanThe -

- SanThe -

23/01/2008 08:54:00
Quote Anchor link
Kijk eens naar de headers van jouw mailtjes in je mailprogramma. Zorg dat al die headers er in staan.
 
Stef Segers

Stef Segers

23/01/2008 09:39:00
Quote Anchor link
Hier een testmail naar mijn .mac account. Dit is de source van de mail

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Return-path: <[email protected]>
Received: from mac.com ([10.150.68.27])
 by ms064.mac.com (Sun Java System Messaging Server 6.2-8.04 (built Feb 28
 2007)) with ESMTP id <[email protected]> for [email protected];
 Wed, 23 Jan 2008 00:37:33 -0800 (PST)
Received: from sportschoolsegers.nl
 (server01.lotsoflegs.nl [81.173.19.113] (may be forged))
    by mac.com (Xserve/smtpin027/MantshX 4.0) with SMTP id m0N8bVfA005446    for
 <[email protected]>; Wed, 23 Jan 2008 00:37:32 -0800 (PST)
Received: from lotsoflegs ([127.0.0.1])    by sportschoolsegers.nl    with
 hMailServer ; Wed, 23 Jan 2008 09:37:24 +0100
Date: Wed, 23 Jan 2008 09:37:24 +0100
From: Stefan Segers <[email protected]>
Subject: Training via de website
To: [email protected]
Reply-to: Stefan Segers <[email protected]>
Message-id: <[email protected]>
Content-type: text/html; charset=iso-8859-1
MIME_-Version: 1.0
X-Brightmail-Tracker: AAAAAA==
X-Brightmail: Scanned
Original-recipient: rfc822;[email protected]

test
 
- wes  -

- wes -

23/01/2008 09:43:00
Quote Anchor link
Stef PM
 
- wes  -

- wes -

23/01/2008 09:52:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
score=3.758
BAYES_40=            2,
HTML_MESSAGE=            0.001,
HTML_MIME_NO_HTML_TAG=        0.097,
MIME_HEADER_CTYPE_ONLY=        0.56,
MIME_HTML_ONLY=1, RDNS_NONE=     0.1


Return-Path: <[email protected]>
From: Stefan Segers <[email protected]>
Received: from sportschoolsegers.nl (unknown [81.173.19.113])



Je probleem is een beetje je addressen opbouw. Je gebruikt 3 verschillende hosts om je kenbaar te maken. Dit uit zich in een belachelijk hoge spamscore, naar de problemen die je hebt om uberhaupt binnen te komen.

Zie het een beetje als dat er iemand aan je deur komt die zegt dat hij Piet heet, een naamkaartje heeft waar Henk op staat, met een busje erachter 'Jaap producten'.

Zou jij zoiemand vertrouwen? Waarschijnlijk niet, net als 99% van de mailservers
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.