/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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/

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste