|
| mail() Fra : Thomas Lindgaard |
Dato : 12-01-05 22:43 |
|
Hejsa
Jeg har opdaget, at jeg har et problem... Jeg har et script, som skal
afsende to emails (simpelt tekstindhold), og enten skal _begge_ mails
afsted eller også skal _ingen_ mails afsted - det må _ikke_ være
sådan, at første mail bliver sendt men ikke den anden (eller omvendt).
Hvordan laves det?
--
Mvh.
/Thomas
| |
Jacob Atzen (13-01-2005)
| Kommentar Fra : Jacob Atzen |
Dato : 13-01-05 00:08 |
|
On 2005-01-12, Thomas Lindgaard <thomas@it-snedkeren.BLACK_HOLE.dk> wrote:
> Jeg har opdaget, at jeg har et problem... Jeg har et script, som skal
> afsende to emails (simpelt tekstindhold), og enten skal _begge_ mails
> afsted eller også skal _ingen_ mails afsted - det må _ikke_ være
> sådan, at første mail bliver sendt men ikke den anden (eller omvendt).
>
> Hvordan laves det?
mail('foo@example.com',...);
mail('bar@example.com',...);
Ellers forstår jeg ikke dit spørgsmål.
--
Med venlig hilsen
- Jacob Atzen
| |
Bertel Lund Hansen (13-01-2005)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 13-01-05 00:36 |
|
Thomas Lindgaard skrev:
>afsende to emails (simpelt tekstindhold), og enten skal _begge_ mails
>afsted eller også skal _ingen_ mails afsted
if ($det_passer_herren) {
mail('foo@example.com',...);
mail('bar@example.com',...);
}
else
echo "Jeg gider ikke sende nogen mail!";
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Emil Rasmussen (13-01-2005)
| Kommentar Fra : Emil Rasmussen |
Dato : 13-01-05 10:32 |
|
Thomas Lindgaard wrote:
> Jeg har opdaget, at jeg har et problem... Jeg har et script, som skal
> afsende to emails (simpelt tekstindhold), og enten skal _begge_ mails
> afsted eller også skal _ingen_ mails afsted - det må _ikke_ være
> sådan, at første mail bliver sendt men ikke den anden (eller omvendt).
>
> Hvordan laves det?
Du kan tjekke om mailen bliver succesfuldt accepteret for afsendelse,
ved at se hvad mail()-kaldet returnerer.
< http://dk.php.net/manual/en/function.mail.php>
Altså:
if (mail('nummer1@example.net',...)) {
mail('nummer2@example.net',...);
}
Men altså, det siger ikke ret meget, om mail 1 rent faktisk når frem.
Mvh Emil
--
Emil Rasmussen
http://noget.net
| |
Lars Falsig (17-01-2005)
| Kommentar Fra : Lars Falsig |
Dato : 17-01-05 09:57 |
|
Du kunne jo også "tvinge" mail2 igennem :
if(mail('111111'){
while(mail('222222')=="FALSE"){
//Løkken kører til mail('222222') er TRUE, dvs afsendt
}
}
Så er du da sikker på at mail2 vil afsendes før eller siden hvis mail1 er
afsendt.
Dog er denne metode giftig, hvis udsagnet i mail2 er ugyldigt vil scriptet
hænge i evig løkke
--
MVH
Lars Falsig
Shopsearch.dk
----------------------------------
Få en gratis counter http://shopsearch.dk/counter.php
Eller besøg vor shop http://shop.shopsearch.dk
"Emil Rasmussen" <news-0401-emil@noget.net> skrev i en meddelelse
news:41e64023$0$33625$edfadb0f@dread16.news.tele.dk...
> Thomas Lindgaard wrote:
>
>> Jeg har opdaget, at jeg har et problem... Jeg har et script, som skal
>> afsende to emails (simpelt tekstindhold), og enten skal _begge_ mails
>> afsted eller også skal _ingen_ mails afsted - det må _ikke_ være
>> sådan, at første mail bliver sendt men ikke den anden (eller omvendt).
>>
>> Hvordan laves det?
>
> Du kan tjekke om mailen bliver succesfuldt accepteret for afsendelse, ved
> at se hvad mail()-kaldet returnerer.
>
> < http://dk.php.net/manual/en/function.mail.php>
>
> Altså:
>
> if (mail('nummer1@example.net',...)) {
> mail('nummer2@example.net',...);
> }
>
> Men altså, det siger ikke ret meget, om mail 1 rent faktisk når frem.
>
> Mvh Emil
> --
> Emil Rasmussen
> http://noget.net
| |
Benny Nissen (13-01-2005)
| Kommentar Fra : Benny Nissen |
Dato : 13-01-05 10:54 |
|
Thomas Lindgaard laid this down on his screen :
> Hejsa
>
> Jeg har opdaget, at jeg har et problem... Jeg har et script, som skal
> afsende to emails (simpelt tekstindhold), og enten skal _begge_ mails
> afsted eller også skal _ingen_ mails afsted - det må _ikke_ være
> sådan, at første mail bliver sendt men ikke den anden (eller omvendt).
Hvis det er samme indhold i begge mails kan du måske bruge cc eller bcc
til kopien.
--
Benny
| |
Thomas Lindgaard (13-01-2005)
| Kommentar Fra : Thomas Lindgaard |
Dato : 13-01-05 10:58 |
|
On Thu, 13 Jan 2005 10:53:57 +0100, Benny Nissen wrote:
> Hvis det er samme indhold i begge mails kan du måske bruge cc eller bcc
> til kopien.
Hmm - der overhalede du mig lige med 20 sekunder...
Men som jeg lige har spurgt i mit andet indlæg: Kan jeg ved brug af bcc
være sikker på at begge modtagere har fået mailen, hvis kaldet til
mail() returnerer true?
--
Mvh.
/Thomas
| |
Thomas Lindgaard (13-01-2005)
| Kommentar Fra : Thomas Lindgaard |
Dato : 13-01-05 10:54 |
|
Hejsa igen
Det er Emil, der er tættest på :) - men ikke helt tæt nok...
Hvis jeg bare laver to kald til mail() efter hinanden, så har jeg ingen
garanti for, at nogen af dem når frem til modtageren.
Hvis jeg siger:
if ( mail(første modtager) )
{
mail(anden modtager)
}
så ved jeg, at første mail er nået frem, men jeg ved noget om den anden.
Det jeg ønsker er som følger:
1) Hvis første mail ikke bliver afsendt, så skal anden mail heller ikke
sendes. (det et let nok - det gør koden ovenover).
2) Hvis første mail bliver afsendt, så SKAL anden mail også kunne
afsendes - ellers opstår der inkonsistens i mit system, og det er
strengt forbudt!
Det er altså et spørgsmål om alt eller intet - en af to må _ikke_ kunne
forekomme! Kan det lade sig gøre?
Jeg vil helst kunne sende to mails med forskelligt indhold, men i
nødstilfælde kan jeg gå med til at sende den samme mail til de to
adresser. Hvis jeg f.eks. siger:
mail(første modtager, subject, message, "Bcc: anden modtager")
og det går godt, kan jeg så være sikker på, at emailen er nået frem
til begge modtagere?
--
Mvh.
/Thomas
| |
Peter Brodersen (13-01-2005)
| Kommentar Fra : Peter Brodersen |
Dato : 13-01-05 13:26 |
|
On Thu, 13 Jan 2005 10:54:17 +0100, Thomas Lindgaard
<thomas@it-snedkeren.BLACK_HOLE.dk> wrote:
>Hvis jeg siger:
>
> if ( mail(første modtager) )
> {
> mail(anden modtager)
> }
>
>så ved jeg, at første mail er nået frem, men jeg ved noget om den anden.
Nej, du ved ikke at første mail er "nået frem". Du ved kun at den er
blevet leveret videre i systemet til en mailserver eller et lokalt
mail-håndterings-script.
Du kan eventuelt selv foretage SMTP-forbindelser til modtageren, men
der er tusindevis af undtagelser. En del servere har fx greylisting og
giver planlagt midlertidig fejl i første omgang, så under alle
omstændigheder er det nok heller ikke en acceptabel løsning.
I korte træk kan du aldrig være sikker på at en mail når helt frem til
slutbrugeren. Du kan gøre så meget som muligt, men i et eller andet
omfang er andre serveres opførsel ude af din kontrol.
Derudover, hvis det kan skabe inkonsistens, så giver det måske mening
ligeledes at gemme dataen på serveren, der skal sendes af sted, så det
er muligt at gensende mails.
--
- Peter Brodersen
| |
Thomas Lindgaard (13-01-2005)
| Kommentar Fra : Thomas Lindgaard |
Dato : 13-01-05 14:02 |
|
On Thu, 13 Jan 2005 13:26:12 +0100, Peter Brodersen wrote:
> Nej, du ved ikke at første mail er "nået frem". Du ved kun at den er
> blevet leveret videre i systemet til en mailserver eller et lokalt
> mail-håndterings-script.
Jeg stoppede også selv lige op ved "nået frem", da jeg skrev indlægget,
men jeg tænkte "det går sgu nok" - det gjorde det så ikke. Du har
naturligvis ret :)
> Du kan eventuelt selv foretage SMTP-forbindelser til modtageren, men der
> er tusindevis af undtagelser.
Uha nej, sådan noget snavs skal vi ikke ud i - vi må hellere holde det
enkelt :)
> Derudover, hvis det kan skabe inkonsistens, så giver det måske mening
> ligeledes at gemme dataen på serveren, der skal sendes af sted, så det
> er muligt at gensende mails.
Ja, det er nok dér vi skal hen - men nu skal jeg først lige se, hvad
B-one's support kan få ud af mit mail-problem. Det forholder sig nemlig
sådan, at jeg godt kan sende mails til adresser inden for domænet
(altså adresser der ender på "@it-snedkeren.dk"), men jeg kan ikke sende
til f.eks. skrumpen@det_ydre_rum.net...
--
Mvh.
/Thomas
| |
Leonard (13-01-2005)
| Kommentar Fra : Leonard |
Dato : 13-01-05 15:32 |
|
Thomas Lindgaard <thomas@it-snedkeren.BLACK_HOLE.dk> wrote:
>Hvis jeg bare laver to kald til mail() efter hinanden, så har jeg ingen
>garanti for, at nogen af dem når frem til modtageren.
Som Peter skriver så har du aldrig garanti for at mail når frem, det
kan jo gå galt helt ude i modtagerens mailprogram/spamfilter ...
Jeg er begyndt altid at gemme vigtige mails sendt fra en hjemmeside i
databasen, så mailen kan genskabes. Og så at tænke anderledes på
hvordan data formidles videre. Ved fx tilmeldinger bruger jeg nu at
sende en mail til den der skal have tilmeldingen med oplysning om at
der er en ny tilmelding og et link til en "hemmelig" side, hvor
tilmeldingerne kan ses, på den måde gør det ikke alverden at der
smutter en mail, for alle tilmeldinger findes i databasen.
Så måske skal du tænke lidt anderledes for at sikre dig konsistens i
dit system.
--
med venlig hilsen
Leonard - http://leonard.dk/
| |
|
|