Copy mail in php, maar alleen het e-mail adres doorsturen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Karel websmoker

Karel websmoker

26/02/2018 17:57:43
Quote Anchor link
Hi, dit is mijn script. Ik wil graag dat het 2e email adres alleen maar het email adres doorstuurt van de verzender. weet iemand hier een oplossing voor?

======================
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
<?php
if(isset($_POST['email'])) {

    // CHANGE THE TWO LINES BELOW
    $email_to = "[email protected] , [email protected]";


    $email_subject = "uw form name";


    function
died($error) {
        // your error code can go here
        echo "Es gab Fehler (n) mit dem Formular. ";
        echo "Diese Fehler (n) erscheinen unten.<br /><br />";
        echo $error."<br /><br />";
        echo "Bitte gehen Sie zurück und beheben Sie diese Fehler.<br /><br />";
        die();
    }


    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !
isset($_POST['last_name']) ||
        !
isset($_POST['email']) ||
        !
isset($_POST['comments'])) {
        died('Es gab Fehler (n) mit dem Formular.');      
    }


    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
    $comments = $_POST['comments']; // required

    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'Die E-Mail- Adresse, die Sie eingeben scheint nicht gültig zu sein.<br />';
  }

    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$first_name)) {
    $error_message .= 'Der eingegebene Name erscheint nicht gültig zu sein.<br />';
  }

  if(!preg_match($string_exp,$last_name)) {
    $error_message .= 'Der eingegebene Nachname erscheint nicht gültig zu sein.<br />';
  }

  if(strlen($comments) < 2) {
    $error_message .= 'Der eingegebene nummer erscheint nicht gültig zu sein. Kontrollieren Ihre betreffende Bestellnummer  mit die E-Mail Bestellbestätigung . <br />';
  }

  if(strlen($error_message) > 0) {
    died($error_message);
  }

    $email_message = "Info erscheint unten.\n\n";

    function
clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }


    $email_message .= "First Name: ".clean_string($first_name)."\n";
    $email_message .= "Last Name: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Comments: ".clean_string($comments)."\n";

// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@
mail($email_to, $email_subject, $email_message, $headers);  

    // Redirect
header("Location: http://www.samplecom/index.html");
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
}
die();
?>
 
PHP hulp

PHP hulp

09/05/2024 00:40:53
 
- Ariën  -
Beheerder

- Ariën -

26/02/2018 18:01:26
Quote Anchor link
Ik zou dan de headers genoemd op deze pagina gebruiken

http://wiki.phpbeginners.nl/index.php?title=De_juiste_mailheaders

tevens raad ik ook aan om netjes op lijn 67 te controleren of mail() gelukt (true) is. Het is geen sluitend bewijs of ene mail is aangekomen, maar het geeft wel aan of het zonder problemen verstuurd is door de server.
Nu zal deze altijd worden doorgestuurd naar je html-pagina, waarbij onafhankelijk of het wel/niet gelukt is.
 
Karel websmoker

Karel websmoker

26/02/2018 19:38:04
Quote Anchor link
dank je, zal naar die regel kijken
als ik
$email_to = "[email protected]";
$bcc_emailadres = '[email protected]';
ga gebruiken, dan komt de mail binnen op het BCC adres en niet op het adres dat op de eerste regel staat.
als extra header heb ik toegevoegd:
$headers.= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';

denk dat het op deze manier niet lukt.
ik wil n.l alleen maar via het BCC adres de email ontvangen die de klant invult op het formulier.
Ik zag ook dat er in mijn script dubbele quotes worden gebruikt en bij de BCC mail een enkele.

gr
K
 
Michael -

Michael -

26/02/2018 21:31:55
Quote Anchor link
Als je zowel een TO als een BCC toevoegt wordt de zelfde mail naar beide adressen gestuurd. Als dit niet is wat je wilt moet je 2 afzonderlijke scripts maken, dan kun je de mail aanpassen.
Verder zijn er een hoop bekende verbeterpunten. Ten eerste zou ik prefereren om een framework als PHPMailer te gebruiken. Deze handelt de mail beter en veiliger af en is uiteindelijk ook makkelijker in gebruik.
Variabelen kopiëren zoals op regel 21-24 is totaal overbodig en schept verwarring. Nog erger is dat je op regel 58-61 de gekopieerde variabelen nogmaals kopieert.
I.p.v. de email regex op regel 34 kun je beter FILTER_VALIDATE_EMAIL gebruiken.
 
Karel websmoker

Karel websmoker

26/02/2018 21:35:49
Quote Anchor link
Ik zal er nogmaals naar kijken.
Met dank
 



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.