Nu har jag ingen större koll på mail-funktionen, men du anger to-adressen både i anropen till mail() samt här:
$this->header .= "To: $this->to\r\n";
Testa att kommentera ut den raden och se om det inte blir bättre då.
3 svar · 323 visningar · startad av Jontto
Hej!
Har en klass Mail som sköter om mailandet i mina skript.
Klassen består av
var $to = "min@mail.com";
...
function setTo($to) { $this->to = $to; }
...
function sendMail() {
$this->header = "MIME-version: 1.0\r\n";
$this->header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$this->header .= "From: $this->from\r\n";
$this->header .= "To: $this->to\r\n";
$this->header .= "Reply-To: $this->from\r\n";
$this->header .= "X-Mailer: PHP/" . phpversion() . "\r\n";
if(@mail($this->to, $this->subject, nl2br($this->message) . "" . nl2br($this->environment), $this->header)) {
echo "<br /><br />Meddelandet har skickats vidare.<br />";
} else {
echo "<br /><br />Det verkar som om något gått snett när mailet skulle skickas...";
}
}
När jag kollar $this-to just före jag anropar mail(), så syns to-addressen helt normal, men när det kommer fram så är to min@mail.com, min@mail.com dvs två gånger. Sammar sak ifall man har flera to-adresser. Varför detta? Har det ngt att göra med att jag har mail() i en if?
Nu har jag ingen större koll på mail-funktionen, men du anger to-adressen både i anropen till mail() samt här:
$this->header .= "To: $this->to\r\n";
Testa att kommentera ut den raden och se om det inte blir bättre då.
Sannerligen var det där skon klämde. Tack yos0n!
Nu undrar jag. Testade lite och kom fram till att det fungerar båda vägarna att antingen ta bort TO från mail-anropet eller så från headern. Vilket är det "korrekta" sättet att göra det eller är det någon skillnad? Mail() måste ju ändå trycka dit TO i headern förr eller senare, eller hur?
Visserligen sägs det ju additional headers i manualen. Kanske man ska tolka det som att TO skall anges i funktionsanropet och resten då i headers.
Jo, to anges nog med fördel i funktionsanropet i och med att det finns ett argument för det. Definitionen för mail anger ju dessutom att $additional_headers och även $additional_parameters är frivilliga argument till funktionen. Är förmodligen meningen att man ska kunna skicka mail till $to med $subject och $message utan att behöva sätta sig in i hur mailheadrar fungerar.