random email verzenden vanuit formulier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Renzo Massaro

Renzo Massaro

01/07/2010 16:37:22
Quote Anchor link
Hallo,

Ik heb deze vraag al eens gesteld en heb toen even getest, maar er lukt iets nog niet helemaal bij mij..

Onderstaand mijn eerste script en daaronder een aangepast script wat Thijs X mij toen heeft gestuurd en daarbij ook een kleine uitleg wat de bedoeling is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$email
=array();
$email[0]="r@...tjes.nl";
$email[1]="re@...mail.com";
$email[2]="r@...tjes.nl";
$email[3]="re@...mail.com";
$email[4]="r@...tjes.nl";
$email[5]="re@...mail.com";
$to = $email[rand(0, count($email))];
?>


Aantal offertes te ontvangen:
0 1
0 2
0 3
0 4
0 5
0 6

De gebruiker kiest bv 3, dan is het de bedoeling dat op het moment dat het formulier verstuurd wordt er 3 emailadressen uit het lijstje rand() kehaald worden en verstuurd worden. Op dit moment haalt het formulier er gewoon 1 uit en wordt deze verstuurd, maar ik wil dat er dus gekeken wordt naar de vraag hoeveel offertes er terug moeten komen en dus hoeveel mailadressen er geselecteerd moeten worden om naar te versturen.

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
<?php
$aantalEmails
= 3;


$email=array();
$email[]="r@...tjes.nl";
$email[]="re@...mail.com";
$email[]="r@...tjes.nl";
$email[]="re@...mail.com";
$email[]="r@...tjes.nl";
$email[]="re@...mail.com";

// Array shuffelen
array_shuffle($email);

for($i = 0; $i < $aantalEmails; $i++) {
   // Stuur mail
}
?>



Het 2e scriptis wel wat ik wil, maar ik wil daarin ook nog het veld $to gebruiken en het lukt mij niet deze op de manier te plaatsen zoals hoe het in het eerste script staat en dat het dan ook werkt. Dit script staat namelijk een aantal keer achter elkaar in een ifelse met $to, $to2 enz en werkt op deze manier niet erg lekker. Iemand een idee hoe ik dit verder nog kan doen?
 
PHP hulp

PHP hulp

14/03/2025 15:40:24
 
- Mark -

- Mark -

01/07/2010 17:09:53
Quote Anchor link
Je kan toch gewoon onderstaande in je for loop stoppen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

    $to
= $email[$i];

?>


Quote:
Dit script staat namelijk een aantal keer achter elkaar in een ifelse met $to, $to2 enz en werkt op deze manier niet erg lekker.


Je bent toch niet het stuk met de shuffle en de for loop aan het herhalen of wel?
Gewijzigd op 01/07/2010 17:22:35 door - Mark -
 
Laurens Dragicevic

Laurens Dragicevic

01/07/2010 19:30:25
Quote Anchor link
Snap niet goed wat je hiermee bedoelt dus ik raad maar wat :P
Quote:
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
<?php
$aantalEmails
= 3;


$email=array();
$email[]="r@...tjes.nl";
$email[]="re@...mail.com";
$email[]="r@...tjes.nl";
$email[]="re@...mail.com";
$email[]="r@...tjes.nl";
$email[]="re@...mail.com";

// Array shuffelen
array_shuffle($email);

for($i = 0; $i < $aantalEmails; $i++) {
    $to = $email[$i];
}

?>


???
Gewijzigd op 01/07/2010 19:31:06 door Laurens Dragicevic
 
Renzo Massaro

Renzo Massaro

02/07/2010 08:17:17
Quote Anchor link
Ik heb nu onderstaande en dan krijg ik een http 500 error, verder geen handige melding eigenlijk. Ik doe vast iets verkeerd. Wat verder de bedoeling is, is dat erna nog een aantal elseif komen met hetzelfde alleen dan een ander postcodegebied...

if( ($mynumber>1000) && ($mynumber<1119) ){
$email=array();
$email[]="r..ro@massarotjes.nl";
$email[]="...@masscreations.nl";
$email[]="re..@vakantiegevoel.nl";
$email[]="sh..@hotmail.com";
array_shuffle($email);

for($i = 0; $i < $aantalEmails; $i++) {
drupal_mail('formulier', 'formulier_mail', $i, '', $params, $from);
}



}


Hoe kan ik dat nou het beste aanpakken??
 
Erik Rijk

Erik Rijk

02/07/2010 08:28:30
Quote Anchor link
array_shuffle?
bedoel je niet shuffle?

En je krijgt een 500 Internal Server error?
Lijkt me niet dat dat aan de code ligt.. ergens een .htaccess file staan die niet werkt?
 
Renzo Massaro

Renzo Massaro

02/07/2010 08:38:08
Quote Anchor link
Nu heb ik het als onderstaande geplaatst(shuffle ipv array_shuffle) en zegt de melding dat de emails worden verzonden, alleen verzend hij steeds maar 1 mail ipv het aantal dat ik opgeef. Dus het lijkt dat het al beter gaat, maar ergens snapt de code niet waarheen het gestuurd moet worden...


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
<?php
$params
['naam'] = $form_values['submitted_tree']['naam'];
$params['postcode'] = $form_values['submitted_tree']['postcode'];

$aantalEmails = $form_values['submitted_tree']['aantal'];

// Vanaf hier de gegevens per postcode gebied aanpassen

//1000-1119 Amsterdam

$email=array();
$email[0]="renzomassaro@massarotjes.nl";
$email[1]="info@masscreations.nl";
$email[2]="r.massaro@vakantiegevoel.nl";
$email[3]="renzo-shirley@hotmail.com";
shuffle($email);

for($i = 0; $i < $aantalEmails; $i++) {
       $to = $email[$i];
}




$from = "info@con.nl";
drupal_set_message('Formulier is verzonden naar de aanbieders');

$mynumber=$form_values['submitted_tree']['postcode'];

if( ($mynumber>1000)  &&  ($mynumber<1119) ){
  drupal_mail('formulier', 'formulier_mail', $to, '', $params, $from);
}

function
formulier_mail($key, &$message, $params) {
  $message['subject'] = "Aanvraag offerte via con";
  $message['body'] = "
Via onze website is de volgende offerte aanvraag binnengekomen.

"
.$params['naam']."
"
.$params['postcode']."

Vriendelijke groet,
Offn
"
;
    }

?>
Gewijzigd op 02/07/2010 09:46:30 door Renzo Massaro
 
Renzo Massaro

Renzo Massaro

02/07/2010 09:14:27
Quote Anchor link
Hij stuurt nu wel met bovenstaand script, maar steeds maar naar 1, niet naar meerdere als ik er naar bv 2 wil sturen...
 
- Mark -

- Mark -

02/07/2010 10:56:54
Quote Anchor link
Ik was hem wat voor je aan het ombouwen maar er klop volgens mij veel meer niet aan. Onderstaande code zal waarschijnlijk nog niet naar behoren werken.

Je zult op deze manier altijd hetzelfde bericht versturen. "Het kan aan mij liggen maar dat lijkt niet de bedoeling."

Ik heb geen idee hoe gecontroleerd word of het bericht ook daadwerkelijk is verstuurd. Ik gok dat drupal_mail true of false terug geeft. Dat moet je even controleren.

Kun je meer keren drupal_set_message() doen of maar 1 keer? Dan moet je de emails die verzonden zijn tellen en kijken het aantal gelijk is aan het te verzenden E-mails en dan via drupal_set_message() het resultaat terug sturen.


Quote:
if( ($mynumber>1000) && ($mynumber<1119) ){
drupal_mail('formulier', 'formulier_mail', $to, '', $params, $from);
}


Dit is het stuk dat jij gebruikt maar dit is geen lus dus het kan ook niet meer dan 1 E-mail versturen. Het lijkt alsof je een bestaand iets aan het ombouwen bent want dat me die postcodes komt verder niet voor in je script.

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
<?php

    #| Settings | Het E-mail adres waarvan de E-mail berichten worden verstuurd.
    
        $from = "info@con.nl";


    #| De lijst met alle E-mail adressen.
    
        $email=array();
        $email[0]="renzomassaro@massarotjes.nl";
        $email[1]="info@masscreations.nl";
        $email[2]="r.massaro@vakantiegevoel.nl";
        $email[3]="renzo-shirley@hotmail.com";


    #| Functie voor het samenstellen van een E-mail bericht.
    
        function formulier_mail($key, $message, $params){
            
            $message['subject'] = "Aanvraag offerte via con";
            $message['body'] = "
            Via onze website is de volgende offerte aanvraag binnengekomen.
            
            "
.$params['naam']."
            "
.$params['postcode']."
            
            Vriendelijke groet,
            Offn
            "
;
        
        }

    

    #| Parameters.
    
        $params['naam'] = $form_values['submitted_tree']['naam'];
        $params['postcode'] = $form_values['submitted_tree']['postcode'];


    #| Het aantal te verzenden E-mails.
    
        $aantalEmails = $form_values['submitted_tree']['aantal'];

    
    #| De lijst met E-mail adressen door elkaar husselen.    

        shuffle($email);


    #| De lijst met gekozen E-mail adressen aflopen.

        for($i = 0; $i < $aantalEmails; $i++) {

        #| Email verzenden.
        
            drupal_mail('formulier', 'formulier_mail', $email[$i], '', $params, $from);

        }


    
    #| Bericht weergeven.
    
        drupal_set_message('Formulier is verzonden naar de aanbieders');

?>
 
Renzo Massaro

Renzo Massaro

02/07/2010 11:24:42
Quote Anchor link
Ik had inderdaad een tip gekregen over dat ik het deel na array shuffle, vanaf for($i = 0..... in het deel van

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
if( ($mynumber>1000) && ($mynumber<1119) ){
drupal_mail('formulier', 'formulier_mail', $to, '', $params, $from);
}

?>


moet plaatsen, daarmee ben ik nu aan het stoeien. Ik zal zo ook even naar jouw script kijken, want we komen wel in de buurt in ieder geval...


Als ik het werkend heb, zal ik het script even online zetten in zijn geheel...

Bedankt zover.. :)
 



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.