random email verzenden vanuit formulier
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)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$email=array();
$email[0]="[email protected]";
$email[1]="[email protected]";
$email[2]="[email protected]";
$email[3]="[email protected]";
$email[4]="[email protected]";
$email[5]="[email protected]";
$to = $email[rand(0, count($email))];
?>
$email=array();
$email[0]="[email protected]";
$email[1]="[email protected]";
$email[2]="[email protected]";
$email[3]="[email protected]";
$email[4]="[email protected]";
$email[5]="[email protected]";
$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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$aantalEmails = 3;
$email=array();
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
// Array shuffelen
array_shuffle($email);
for($i = 0; $i < $aantalEmails; $i++) {
// Stuur mail
}
?>
$aantalEmails = 3;
$email=array();
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
// 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?
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 -
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$aantalEmails = 3;
$email=array();
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
// Array shuffelen
array_shuffle($email);
for($i = 0; $i < $aantalEmails; $i++) {
$to = $email[$i];
}
?>
$aantalEmails = 3;
$email=array();
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
// 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
if( ($mynumber>1000) && ($mynumber<1119) ){
$email=array();
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
$email[]="[email protected]";
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??
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?
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
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]="[email protected]";
$email[1]="[email protected]";
$email[2]="[email protected]";
$email[3]="[email protected]";
shuffle($email);
for($i = 0; $i < $aantalEmails; $i++) {
$to = $email[$i];
}
$from = "[email protected]";
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
";
}
?>
$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]="[email protected]";
$email[1]="[email protected]";
$email[2]="[email protected]";
$email[3]="[email protected]";
shuffle($email);
for($i = 0; $i < $aantalEmails; $i++) {
$to = $email[$i];
}
$from = "[email protected]";
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
Hij stuurt nu wel met bovenstaand script, maar steeds maar naar 1, niet naar meerdere als ik er naar bv 2 wil sturen...
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);
}
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)
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
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 = "[email protected]";
#| De lijst met alle E-mail adressen.
$email=array();
$email[0]="[email protected]";
$email[1]="[email protected]";
$email[2]="[email protected]";
$email[3]="[email protected]";
#| 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');
?>
#| Settings | Het E-mail adres waarvan de E-mail berichten worden verstuurd.
$from = "[email protected]";
#| De lijst met alle E-mail adressen.
$email=array();
$email[0]="[email protected]";
$email[1]="[email protected]";
$email[2]="[email protected]";
$email[3]="[email protected]";
#| 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');
?>
Code (php)
1
2
3
4
5
2
3
4
5
<?
if( ($mynumber>1000) && ($mynumber<1119) ){
drupal_mail('formulier', 'formulier_mail', $to, '', $params, $from);
}
?>
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.. :)