Avatar billede freekyzone Nybegynder
23. august 2002 - 19:10 Der er 33 kommentarer og
1 løsning

mail i PHP

jeg har fundet det her på php.net

$myname = "Me Myself";
$myemail = "myself@email.com";

$contactname = "Mister Contact";
$contactemail = "contact@email.com";

$message = "hello from happy me";
$subject = "A mail not refused by Hotmail";

$headers = "MIME-Version: 1.0\r\n";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
$headers = "From: ".$myname." <".$myemail.">\r\n";
$headers = "To: ".$contactname." <".$contactemail.">\r\n";
$headers = "Reply-To: ".$myname." <$myreplyemail>\r\n";
$headers = "X-Priority: 1\r\n";
$headers = "X-MSMail-Priority: High\r\n";
$headers = "X-Mailer: Just My Server";

mail($contactemail, $subject, $message, $headers);

Når det blive sendt og jeg i php.ini har fjernet den e-mail der stod at mail skulle sendes fra sender dette script også mail'en afsted, men uden afsendernavn og afsender e-mailadresse..

Kan nogen hjælpe så jeg kan få den afsender mail adresse og navn med UDEN at jeg skal angive det i php.ini ...??
Avatar billede freekyzone Nybegynder
23. august 2002 - 19:13 #1
og lige et tillægsspørgsmål... hvordan laver man ny linie i mail?? <br> kan jeg ikke får til at virke....
Avatar billede gizmo-gizmo Nybegynder
23. august 2002 - 19:15 #2
nyt linieskift laves med \n
Avatar billede gizmo-gizmo Nybegynder
23. august 2002 - 19:16 #3
eller også kan du bare hoppe ned på næste linie i mailen, fx:
mail("123@123.dk", "emne", "hejhej
test test
yes
yes
", "from:bla@bla.dk");
Avatar billede jakoba Nybegynder
23. august 2002 - 19:19 #4
sådan en stribe assignments bygger ikke een lang streng.

$headers = "MIME-Version: 1.0\r\n";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
$headers = "From: ".$myname." <".$myemail.">\r\n";
$headers = "To: ".$contactname." <".$contactemail.">\r\n";
$headers = "Reply-To: ".$myname." <$myreplyemail>\r\n";
$headers = "X-Priority: 1\r\n";
$headers = "X-MSMail-Priority: High\r\n";
$headers = "X-Mailer: Just My Server";

det bliver blot til:
$headers = "X-Mailer: Just My Server";

for at tilføje skal du bruge  .=

$headers = "MIME-Version: 1.0\r\n";  //kun = første gang
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$myname." <".$myemail.">\r\n";
$headers .= "To: ".$contactname." <".$contactemail.">\r\n";
$headers .= "Reply-To: ".$myname." <$myreplyemail>\r\n";
$headers .= "X-Priority: 1\r\n";
$headers .= "X-MSMail-Priority: High\r\n";
$headers .= "X-Mailer: Just My Server";

det er ligesådan med de andre steder du bygger strenge.
Avatar billede freekyzone Nybegynder
23. august 2002 - 19:22 #5
jakoba  ->  virker stadig ikke....

den sender stadig uden afsendernavn og e-mail....
Avatar billede jakoba Nybegynder
23. august 2002 - 19:22 #6
hvis du havde ambulancehyl på din cykel ville du så også bruge det for at komme hurtigt hjem fra skole?

$headers .= "X-MSMail-Priority: High\r\n";

et prioritetssystem er intet værd hvis du blot sætte alt til max prioritet.
Avatar billede freekyzone Nybegynder
23. august 2002 - 19:23 #7
ups... nu kom den vist... 2 sec prøver lige igen...
Avatar billede jakoba Nybegynder
23. august 2002 - 19:24 #8
Hvad står der i dit script nu?
Avatar billede freekyzone Nybegynder
23. august 2002 - 19:26 #9
det som du har skrevet... men den vil altså ikke lave linieskift i dette:

$message = "TEST fra mig
        Test fra mig
        Test.....";

det kommer til at stå ud i een.....
Avatar billede jakoba Nybegynder
23. august 2002 - 19:27 #10
det beder du den om her:
  Content-type: text/html;
prøv med:
  Content-type: text/plain;
Avatar billede freekyzone Nybegynder
23. august 2002 - 19:30 #11
Jakoba, du er GULD!!!

kan du for sjovs skyld forklare hvordan jeg så laver linieskift hvis det er html ???
Avatar billede jakoba Nybegynder
23. august 2002 - 19:35 #12
med en html kommando:
her er<br>linie 2<br> fulgt af en tredie.

det ved du da :-))
Avatar billede freekyzone Nybegynder
23. august 2002 - 19:47 #13
k.. kunne bare ikke få det til at virke...

$message = "Hej $navn,
          Tak for din henvendelse.
          Du har skrevet følgende:
          Dato: $dato
                 
          if (firma == '')
          {
              echo '';
          }
          else
          {
              echo 'Firma:';
          }
          Navn: $navn
        ";

Når jeg sætter det if ind sender den det script med i e-mail'en - hvorfor? hvad har jeg gjort galt???
Avatar billede freekyzone Nybegynder
23. august 2002 - 19:52 #14
$message = "Hej $navn,
          Tak for din henvendelse.
          Du har skrevet følgende:
          Dato: $dato
                 
          if ($firma == '')
          {
              echo '';
          }
          else
          {
              echo 'Firma:';
          }
          Navn: $navn
        ";

Så skriver den godtnok hvad der står i $firma i databasen (hvis der står noget) men ellers er resten af scriptet det samme...
Avatar billede jakoba Nybegynder
23. august 2002 - 19:54 #15
din streng starter med "-tegnet foran hej.
og siden du ikke afslutter strengen før erfter din if-sætning står den ifsætning altså inden i strengen som bogstaver.

$message = "Hej $navn,
          Tak for din henvendelse.
          Du har skrevet følgende:
          Dato: $dato "
          . (firma == '')?'''Firma:';
          . "
          Navn: $navn
        ";

men hvis firma er en php variabel skal der da stå $firma

mvh JakobA
Avatar billede jakoba Nybegynder
23. august 2002 - 19:54 #16
næe den linie var gal, der mangler et :
          . (firma == '')?'':'Firma:';
Avatar billede freekyzone Nybegynder
23. august 2002 - 20:02 #17
nope.... der er fejl i denne linie:

          Dato: $dato "
          . (firma == '')?'''Firma:';
-->      . "
Avatar billede freekyzone Nybegynder
23. august 2002 - 20:04 #18
. (firma == '')?'':'Firma:'; .
          " Navn: $navn
        ";

der er fejl i den første linie...
Avatar billede freekyzone Nybegynder
23. august 2002 - 20:06 #19
den skal undersøge om der er indtastet noget i firma. Har den ikke skal der i mail'en ikke stå "Firma:"

men er der intastet fx.  danskebank skal der stå:

"Firma: Danskebank"

.... men det vil den ikke!!!!
Avatar billede jakoba Nybegynder
23. august 2002 - 20:15 #20
$message = "Hej $navn,
          Tak for din henvendelse.
          Du har skrevet følgende:
          Dato: $dato "
          . ((firma == '')?'':'Firma: $firma')
          . "
          Navn: $navn
        ";

altså " i begge ender afgrænser strenge
. imellem to operander sætter der erter hinanden som strenge
  (betingelse)? værdi1 : værdi2
svarer til værdi1 hvis betingelsen er sand og til værdi2 hvis betingelsen er  false.
der skal først stå ; helt forenden af sætningen.
Avatar billede freekyzone Nybegynder
23. august 2002 - 21:01 #21
hvis jeg må stramme den og spørge: hvas så med denne:

"
  . (($brugerbetaler != 'ja' && $domæne != '')?
  'Betaler:':'Brugeren er også betaler')
  . "
 
  "
  . (($brugerbetaler != 'ja' && $produkt1 != '')?
  '
  . ""
  . (($firma_betaler == '')?'':'Firma:')
  . " $firma_betaler
  $navn_betaler
  $adresse_betaler
  $postnr_betaler $sted_betaler
  $email_betaler
  $tlf_betaler
  "
  . (($fax_betaler == '')?'':'Fax:')
  . " $fax_betaler
  ':'')

Det jeg vil have den til er:

at skrive om brugeren er betaler eller ej. det gør det også fint nok.

Er bruger betaler skal den ikke skrive mere, selv om en klovn måske har indtastet noget i de øvrige celler.

Er bruger ikke betaler skal den vise hvem der er, og finde ud af om betaleren har firma og fax...
Avatar billede jakoba Nybegynder
23. august 2002 - 21:22 #22
det du laver er muligt. men når du laver det på den måde synes jeg ærlig tal det bliver noget uorverskueligt men betingelser og værdier syltet ind i hinanden.
hvad med noget i retning af:

$message = "Hej $navn,
          Tak for din henvendelse.
          Du har skrevet følgende:
          Dato: $dato ";    // det der altid skal stå
if ( $brugerbetaler != 'ja' && $domæne != '' ) {
    $message .= 'Betaler:';
} else {
    $message .= 'Brugeren er også betaler';
}
$message .= "

  ";
if ( $brugerbetaler != 'ja' && $produkt1 != '' ) {
    if ( $firma_betaler != '' ) {
        $message .= "Firma:"
    }
    $message .= " $firma_betaler
  $navn_betaler
  $adresse_betaler
  $postnr_betaler $sted_betaler
  $email_betaler
  $tlf_betaler
  ";
    if ( $fax_betaler != '' ) {
        $message .= "Fax:"
    }
    $message .= " $fax_betaler";
}

er den ikke noget nemmere at hitte ud af?
Avatar billede freekyzone Nybegynder
25. august 2002 - 21:38 #23
jakoba -> kunne du hjælpe med det sidste???
Avatar billede jakoba Nybegynder
25. august 2002 - 21:40 #24
Ikke rigtig, jeg troede du mente det jeg skrev ovenfor?
Avatar billede freekyzone Nybegynder
25. august 2002 - 21:41 #25
nope...

forstår du det sidste jeg spør om???
Avatar billede jakoba Nybegynder
25. august 2002 - 21:43 #26
nej. jeg forstår ikke det sidste du spørger om.
Avatar billede freekyzone Nybegynder
25. august 2002 - 21:43 #27
ved du hvad jeg skal gøre hvis jeg fx vil sende en ens standart mail i ny og næ, men til forskellige personer.

Så vil jeg have det sådan at jeg kan trykke på en knap på en side.
Herefter kommer en ny side frem hvor jeg skal indtaste navn og e-mail på den person mailen skal sendes til..

hvordan gør jeg det???
Avatar billede freekyzone Nybegynder
25. august 2002 - 21:44 #28
giver gerne flere point, hvis du vil have det.... :-)
Avatar billede jakoba Nybegynder
25. august 2002 - 21:51 #29
Øh, jeg forstår vist stadig ikke.

Du laver en senden-mail side ligesom denne, med dit standardbrev på og så laver du et link hen til den side.

Men det er da ligesom for enkelt til at være det du spørger om.

mvh JakobA
Avatar billede freekyzone Nybegynder
25. august 2002 - 22:03 #30
well denne:

mail($contactemail, $subject, $message, $headers);

sender mailen med det samme.

Jeg vil lave sådan her:

Side1:  tekst og administrationsside. Her skal der være en knap/link hvorefter side 2 kommer frem

Side2: Her er der principielt en tom side. Men som script på sider ligger nogle variabler $navn og $adresse som er forskellig. Ellers er resten af teksten i den mail der ligger "bag" siden ens.
Jeg skal her kunne indtaste en tekst i mailen (evt bare emnet i mailen) hvorefter den først afsendes når jeg trykker på en knap her!
Avatar billede freekyzone Nybegynder
25. august 2002 - 22:05 #31
kan man bruge php_self ???

og sætte det hele i en form ???
Avatar billede freekyzone Nybegynder
25. august 2002 - 22:07 #32
fx denne:

<form method="post" action="<? mail($contactemail, $subject, $message, $headers); ?>">


kan jeg det???
Avatar billede jakoba Nybegynder
25. august 2002 - 22:16 #33
hovedreglen over alle hovedregler:
  KISS  'Keep It Simple Stupid'

Istedet for at tænke på 7 ting på een gang er det bedre at lave een eneste ting ad gangen før du går igang med den næste del af problemet.

Her tror jeg det ville hjælpe hvis du først lavede HTML-koden og på den måde fik konkretiseret hvordan din mail skal se ud, om den evt skal sendes til mange mennesker, og diverse andre detallier.

Når du rigtig VED det bliver det meget nemmere at tage næste skridt.

mvh JakobA
Avatar billede jakoba Nybegynder
25. august 2002 - 22:33 #34
Kommentar: freekyzone 25/08-2002 22:07:21

Nej, det kan du ikke.  efter action= skal der stå en internet adresse. funktionen mail returnerer ikke andet end en boolean værdi.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester