user mail uit mysql database halen voor mailing systeem.
Marcel sauer op 16/03/2015 21:44:32:
in mijn script geef ik het mail adres van de user die zend mee.
Niet in de From hoop ik.
http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders
[email protected]"; doen.
Ik vond je vraag niet geheel duidelijk of je nou de variabelen weg wou hebben, of er een waarde in wou krijgen.
Of anders moet je gewoon $cfg['email'] = "Ik vond je vraag niet geheel duidelijk of je nou de variabelen weg wou hebben, of er een waarde in wou krijgen.
hier nogmaals de (ik hoop) betere uitleg.
mijn host meld dus dat als je via de browser mailt met een email adres wat niet van mijn site is.
dat er dan een maximum van 20 aan zit.
ik heb dus $cfg['email'] dit is het email adres van de user waar het heen gezonden wordt.
met echoen zie ik dat de waarde klopt.
alleen het email adres eindigd bijvoorbeeld op gmail.com
dit mag je maximaal 20x in 24 uur verzenden op deze manier bij mijn host. (blijkbaar)
dit verklaard dat ik wel naar een user kan mailen die een email adres van mijn eigen site heeft.
als ik niet meer kon mailen (na de 20x) dan kon ik alleen wel nog naar deze ene user mailen met het mail adres van mijn site en niet meer naar alle andere users met bijvoorbeeld een gmail adres.
of terwijl de mail moet altijd vanuit mijn website mail adres verzonden worden en als reply mag er wel een ander email adres in staan.
ik denk dat het opgelost is dit ga ik even een tijdje testen.
Marcel sauer op 16/03/2015 22:06:16:
de mail moet altijd vanuit mijn website mail adres verzonden worden en als reply mag er wel een ander email adres in staan.
Dit klopt inderdaad.
I hate to say I told you so.
ik gebruik mijn eigen host email adres ($wm_email) als verzend adres en gebruik de $ontv_user_email als ontvangst adres.
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
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
<?php
$wm_email = "[email protected]";
$ontv_user_email = $dnn['user_email']; // ontvanger user E-mail
// Headers
$headers = "From: \"Contact Formulier\" <".$wm_email.">\r\n";
$headers .= "Reply-To: \"".$wm_naam."\" <".$wm_email.">\n";
$headers .= "Return-Path: Mail-Error <".$wm_email.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
// Bericht
$massage = "ID: ".$cfg['id']." \n";
$message .= "Naam: ".$naam." \n";
$message .= "E-mail: ".$wm_email." \n";
$message .= "Onderwerp: ".$onderwerp." \n";
$message .= "Bericht:\n".$bericht_wrap." \n ";
$message .= " \n ";
$message .= "Datum: ".date("d-m-Y H:i:s")." \n";
$message .= "------------------------------------------------------- \n ";
$message .= "IP: ".$ip." \n ";
$message .= "Host: ".$host." \n ";
mail($ontv_user_email,$onderwerp,$message,$headers);
?>
$wm_email = "[email protected]";
$ontv_user_email = $dnn['user_email']; // ontvanger user E-mail
// Headers
$headers = "From: \"Contact Formulier\" <".$wm_email.">\r\n";
$headers .= "Reply-To: \"".$wm_naam."\" <".$wm_email.">\n";
$headers .= "Return-Path: Mail-Error <".$wm_email.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
// Bericht
$massage = "ID: ".$cfg['id']." \n";
$message .= "Naam: ".$naam." \n";
$message .= "E-mail: ".$wm_email." \n";
$message .= "Onderwerp: ".$onderwerp." \n";
$message .= "Bericht:\n".$bericht_wrap." \n ";
$message .= " \n ";
$message .= "Datum: ".date("d-m-Y H:i:s")." \n";
$message .= "------------------------------------------------------- \n ";
$message .= "IP: ".$ip." \n ";
$message .= "Host: ".$host." \n ";
mail($ontv_user_email,$onderwerp,$message,$headers);
?>
wat doe ik fout?
als ik :
niemand?
Volgens mij moet elke header eindigen op "\r\n" in plaats van "\n" anders worden headers mogelijk genegeerd.
Of gebruik enkel "\n", maar geen combinatie van beide.
Daarnaast zou je Return-Path in "simple form" moeten staan, dus in plaats van "[naam] <[adres]>" zou dit enkel "[adres]" moeten zijn. In sommige bronnen wordt ook aangeraden om je Return-Path mee te geven als 5e parameter in je mail()-aanroep middels "-f[adres]" (zonder spatie tussen -f en [adres]).
Of gebruik gewoon een library voor het verzenden van mail, daar is al dit soort kennis al in verwerkt... hoef je zelf niet te lopen prutten in mail-headers.
En een rare restrictie van de hoster (mogelijk om spam tegen te gaan?). Je zou:
- of kunnen vragen of ze deze restrictie voor jou opheffen
- of alle afzend-adresssen (from, reply-to, return-path) kunnen aanpassen naar een adres op jouw domein
EDIT: spelling
Gewijzigd op 19/03/2015 20:16:08 door Thomas van den Heuvel
dit stukje begrijp ik niet helemaal kan je dit nader uitleggen?
Quote:
Daarnaast zou je Return-Path in "simple form" moeten staan, dus in plaats van "[naam] <[adres]>" zou dit enkel "[adres]" moeten zijn. In sommige bronnen wordt ook aangeraden om je Return-Path mee te geven als 5e parameter in je mail()-aanroep middels "-f[adres]" (zonder spatie tussen -f en [adres]).
bedoel je dat dit dan zo zou moeten?
maar wat houd de -f in dan?
Quote:
additional_parameters (optional)
The additional_parameters parameter can be used to pass additional flags as command line options to the program configured to be used when sending mail, as defined by the sendmail_path configuration setting. For example, this can be used to set the envelope sender address when using sendmail with the -f sendmail option.
The additional_parameters parameter can be used to pass additional flags as command line options to the program configured to be used when sending mail, as defined by the sendmail_path configuration setting. For example, this can be used to set the envelope sender address when using sendmail with the -f sendmail option.
ik weet nog niet helemaal wat er fout is gegaan maar ben opnieuw begonnen met het script op te bouwen vanaf nul en tot nu toe lijkt alles weer te werken. nog een paar aanpassingen en dan moet hij af zijn.
als hij nu een fout melding geeft of het niet doet weet ik dat het in de laatste aanpassingen moet zitten.
alvast iedereen bedankt voor het geduld en het behulpzaam zijn!
Marcel sauer op 22/03/2015 20:28:17:
bedankt! de -f zorgt er dus ook voor dat je mail uit de spambox blijft ;)
Niet in het algemeen gelukkig.