On 11-01-2013 12:46, scootergrisen wrote:
>>> I stedet for at bruge mail() to gange sᅵ kan du bruge CC eller BCC i
>>> headeren hvis du vil sende samme email til flere adresser.
>>
>> Ikke nᅵr emnet ikke er det samme...
>
> Ok men det kunne man mᅵske leve med at emnet er det samme.
>
> Ellers prᅵv og byt om pᅵ den fᅵrste og anden mail() og se om det sᅵ
> forholdet sig omvendt.
>
> Og test om mail() returner false som betyder at emailen ikke blev sendt.
mail() sender false hvis PHP ikke kan "oprette" mailen med afsender
maskinen (normalt sendmail eller en SMTP, alt afhᅵngig af hvad der er
sat op i php.ini)
Hvis mailen kommer i kᅵ hos afsendermaskinen, sᅵ sender PHP true retur.
Dermed er det IKKE sagt at mailen overhovedet bliver sendt, faktisk kan
man skrive mail('','','') og stadig fᅵ true.
Det er kun hvis PHP ikke er sat ordentligt op at man fᅵr false pᅵ denne.
Mails der ikke modtages, er ret ofte TXT dns record der ikke er sat,
rigtig mange Exchange (mail) servere, @
live.com og andre Microsoft
tjenester laver et sᅵkaldt relay lookup pᅵ afsender emailen og
IP-adressen, for at se om domᅵnet eksisterer og det ikke bare er en
tilfᅵldig mail der bliver sendt ud.
Ellers kunne man jo bare skrive
mail('t...@mail.example', 'subject', 'phishing mail', 'From:
most...@gmail.com');
ogsᅵ vil modtageren jo tro at det er mosteroda der har sendt mailen.
For at gᅵre alt dette nemmere, sᅵ bruger jeg swiftmailer, og gerne med
SMTP transporter, sᅵ kan jeg nemlig tjekke om mailen faktisk bliver
korrekt sendt, og den ikke bare bliver relayet tilbage.
$transport = Swift_SmtpTransport::newInstance('
smtp.example.org', 25);
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('Wonderful Subject')
->setFrom(array('
jo...@doe.com' => 'John Doe'))
->setTo(array('
rece...@domain.org', '
ot...@domain.org' => 'A name'))
->setBody('Here is the message itself');
if (!$mailer->send($message, $fails)) {
print_r($fails);
}