Contact form komt niet goed in hotmail

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rob Tel

rob Tel

01/10/2009 00:17:00
Quote Anchor link
Dag Allemaal,

Ik heb een simpel contactformulier maar als ik hem naar mijn hotmail laat verzenden krijg ik bij het openen eerst het bericht "This message has been blocked for your safety. "

Zit hem dat in de scripting of in hotmail? ik hoorde al van iemand dat hotmail waarschijnlijk bepaalde headers verwacht die niet worden verstuurd.

Hieronder het script; wat doe ik fout?
<html>
<body>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$email
='[email protected]';

    if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['form']))
    {

    if(!trim($_POST['naam'])) {
    print 'U heeft geen naam ingevuld.'?>
<a href='javascript:history.go(-1)'>Ga terug.</a>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<? ;}    
    elseif(!eregi("[A-Za-z0-9_-]+([.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([.]{1}[A-Za-z0-9-]+)+", $_POST['email'])) {
       print 'U heeft geen geldig emailadres ingevuld.'?>
<a href='javascript:history.go(-1)'>Ga terug.</a>
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
<? ;}
  
  
    else{
                $headers = "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
                $headers .= "Reply-To: ".$_POST['naam']." <".$_POST['email'].">\r\n";
                                    //create body
                            
                        //het bericht

                $body.= "Naam: ";
                $body.= $_POST['naam'] ."\r\n";
                $body.= "Email: ";
                $body.=    $_POST['email'] ."\r\n";

                     mail($email,"Contact: ".$_POST['naam'],$body,$headers);
               print 'bedankt';
            } }

          
    
     else
     {
?>
<form name="form" method="POST" >
<input name="form" type="hidden" value="" />
<table>

<tr>
<td width="195">Naam: <i>*</i></td>
<td width="401"> <input type="tekst"name="naam" id="q"> </td></tr>
<tr>
<td>E-mail adres: <i>*</i></td>
<td><input type="tekst"name="email" id="q"></td>
</tr>

<tr><td></td><td> <p> <input type="submit" value="Versturen" onclick="" id="button" /></p></td></tr>
</table>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
    }
?>



</body>
</html>


alvast bedankt.
 
PHP hulp

PHP hulp

22/12/2024 10:12:12
 
The Ultimate

The Ultimate

01/10/2009 08:34:00
Quote Anchor link
Ok, de mail functie werkt als volgt:

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
<?php
$to
= "someone <some@email>";
$subject = "You've got mail!";
$message = "Hello someone.";
$headers = "From: [email protected]\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "Reply-To: me <[email protected]>\n";
$headers .= "X-Priority: 1\n";
$headers .= "X-MSmail-Priority: High\n";
$headers .= "X-mailer: My mailer";

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


Het kan uiteraard zijn dat Hotmail denkt dat jouw bericht SPAM zijn vanwege de inhoud van jouw bericht, maar ik zou beginnen met het uitbreiden van jouw headers.

Uiteraard wanneer je phpmailer of swiftmailer gebruikt heb je hier geen last van.

EDIT (TIP):
Verwerk de mail niet midden in de <body> van de pagina maar plaats de verwerking ervan helemaal bovenaan de pagina (dus nog boven de header en voor al het andere). Alle foutmeldingen kun je dan in een array() (bv. $errMess) plaatsen en op een willekeurig plaats op de pagina tonen. Je zou het ook in een functie/classe kunnen zetten en het vervolgens kunnen aanroepen, maar dat gaat wellicht iets te ver voor nu?
Gewijzigd op 01/01/1970 01:00:00 door The Ultimate
 
Rob Tel

rob Tel

01/10/2009 10:13:00
Quote Anchor link
bedankt,

ik heb uitgevonden dat het probleem zit in deze 2 regels;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$headers
= "From: ".$_POST['naam']." <".$_POST['email'].">\n";
$headers .= "Reply-To: ".$_POST['naam']." <".$_POST['email'].">\n";
?>


Toch zou ik wel graag willen dat hij de naam en mail laat zien als afzender. is daar nog een mogelijkheid toe?
 
The Ultimate

The Ultimate

01/10/2009 10:36:00
Quote Anchor link
Robbert schreef op 01.10.2009 10:13:
bedankt,
Toch zou ik wel graag willen dat hij de naam en mail laat zien als afzender. is daar nog een mogelijkheid toe?


Wat bedoel je?
 
Rob Tel

rob Tel

01/10/2009 10:54:00
Quote Anchor link
nou in hotmail dat er een naam + email vande afzender komt te staan..

ik heb phpmailer en swift mailer beide gedownload, maar dat zijn hele grote scripts. ik wil echter een zeer simpel contactscript.. moet het dan zo uitgebreid als swift of phpmailer?
 
Toine vd P

Toine vd P

01/10/2009 11:04:00
Quote Anchor link
Controleer in eerste instantie of het fromadres ook daadwerkelijk van het domein komt waar je vanaf verzend, dit is de meestvoorkomende fout in deze situatie, dus als je test vanaf www.ditismijnsite.nl dient je from adres te eindigen op @ditismijnsite.nl
 
Rob Tel

rob Tel

01/10/2009 11:32:00
Quote Anchor link
hmm oke, zoiets lijkt het inderdaad te zijn.. want als hij vanaf eigendomein.nl binnen komt gaat het goed.

Maar ik wil dus graag het volgende dat hij binnen komt met het emailadres dat is opgegeven in het formulier(dus niet die van de desbetreffende server)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$headers
= "From: ".$_POST['naam']." <".$_POST['email'].">\n";
?>


en dat hij bij het replyen replied naar het opgegeven emailadres:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<? $headers .= "Reply-To: ".$_POST['naam']." <".$_POST['email'].">\n";
?>


hoe kan ik zoiets voor elkaar krijgen?
 
Rob Tel

rob Tel

01/10/2009 15:11:00
Quote Anchor link
heb het voor elkaar, bedankt allemaal!

Gelieve Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door rob Tel
 
- SanThe -

- SanThe -

01/10/2009 15:20:00
Quote Anchor link
Robbert schreef op 01.10.2009 15:11:
heb het voor elkaar, bedankt allemaal!

Hoe dan? Graag ook even hier vermelden.
 
Rob Tel

rob Tel

01/10/2009 15:22:00
Quote Anchor link
nou heb het in zoverre voor elkaar dat als ik bij de from; de eigen domeinnaam neerzet dat het dan lukt.. als ik de naam en mail van diegene die het formulier verzonden heeft laat staan dan gaat het fout.
 
Jan Willem van der Veer

Jan Willem van der Veer

01/10/2009 15:29:00
Quote Anchor link
Quote:
als ik de naam en mail van diegene die het formulier verzonden heeft laat staan dan gaat het fout.
Wat gaat er fout?

Misschien moet je ook bedenken dat je < moet escapen binnen die dingen. Dus:
$headers = 'From: "'.str_replace('"', '""', $from).'" <'.$fromMail.'>';

Maar wat voor veld is die $_POST['naam']. Staan daar soms rare tekens in (en dan bedoel ik tekens die niet binnen ASCII-set vallen)? Want dan zul je weer voor UTF-8 o.i.d. moeten gaan escapen :)
 
- SanThe -

- SanThe -

01/10/2009 15:49:00
Quote Anchor link
Robbert schreef op 01.10.2009 15:22:
nou heb het in zoverre voor elkaar dat als ik bij de from; de eigen domeinnaam neerzet dat het dan lukt.. als ik de naam en mail van diegene die het formulier verzonden heeft laat staan dan gaat het fout.

Dat komt door SPF.
 
Rob Tel

rob Tel

01/10/2009 15:51:00
Quote Anchor link
SanThe schreef op 01.10.2009 15:49:
Robbert schreef op 01.10.2009 15:22:
nou heb het in zoverre voor elkaar dat als ik bij de from; de eigen domeinnaam neerzet dat het dan lukt.. als ik de naam en mail van diegene die het formulier verzonden heeft laat staan dan gaat het fout.

Dat komt door SPF.


oke en dat valt niet te omzeilen?
 
- SanThe -

- SanThe -

01/10/2009 15:54:00
Quote Anchor link
Nee, gelukkig niet. Dat is een anti-spam methode en we houden niet van spammers.

Edit: Hier staat ook de return-path nog bij.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Jan Willem van der Veer

Jan Willem van der Veer

01/10/2009 16:08:00
Quote Anchor link
Quote:
Nee, gelukkig niet. Dat is een anti-spam methode en we houden niet van spammers.
Dan wil ik nog wel eens weten hoe het zit met al die sites die niet hun eigen domein gebruiken, maar desondanks wel mail versturen van hun domein. Denk hierbij bijvoorbeeld aan de phpBB-fora e.d.
 
- SanThe -

- SanThe -

01/10/2009 17:11:00
Quote Anchor link
De SPF check wordt nog lang niet door ieder domain toegepast. Bij heel veel DNS servers ontbreekt het benodigde record nog.
 
Jan Willem van der Veer

Jan Willem van der Veer

01/10/2009 17:41:00
Quote Anchor link
Yep, maar dat lijkt mij toch niet te gelden voor algemeen bekende domeinen als gmail en hotmail... En die komen bij mij (gmail) ook altijd netjes binnen. Ik vraag me dus af of gmail er gebruik van maakt of hoe wachterdicht het systeem is :)
 



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.