Gå til innhold

Sende mail med php


Anbefalte innlegg

Hallo,

 

jeg driver og lager en webside for kjøp og salg av produkter. Tanken er at når en kunde har bestilt et produkt skal det automatisk sendes en mail til vedkommende med en ordrebekreftelse. Jeg har forsøkt å lage et script med dette scriptet som utgangspunkt:

 

 

<?php

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

?>

 

Der jeg selvfølgelig tilordner de respektive variabler relevant verdi, men jeg får det altså ikke til å fungere. Er det noen som kan tenke seg hvorfor dette ikke fungerer?

 

Takknemlig for tilbakemeldinger.

 

Almeraldo

Lenke til kommentar
Videoannonse
Annonse
Litt vanskelig å si når man ikke har koden din. Bare endre alle epostaddresser og ømfintlige opplysninger til noe generelt og legg ut koden, så blri det mye lettere for folk å finne ut hva feilen kan være.

 

<?php

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

?>

Takker for respons, men det er nok ikke der problemet ligger. Den php-snutten jeg har lagt ut er faktisk alt du trenger for å generere en e-postmelding slik jeg har forstått det. Hvis snutten hadde ligget på en ellers blank webside med så skal den i teorien sende en mail til mailadressen som er satt inn for variabelen $to.

 

 

<?php

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

?>

Lenke til kommentar
Takker for respons, men det er nok ikke der problemet ligger. Den php-snutten jeg har lagt ut er faktisk alt du trenger for å generere en e-postmelding slik jeg har forstått det. Hvis snutten hadde ligget på en ellers blank webside med så skal den i teorien sende en mail til mailadressen som er satt inn for variabelen $to.

 

 

<?php

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

?>

Ja, og nettopp derfor må vi nesten få se resten av koden din. I det minste variablene $to, $subject, $message og $headers.

Lenke til kommentar

Du har jo bare inkludert selve funksjonen. Hvis det ikke funker, må det jo være koden rundt. PHP maualen har jo en glimrende eksempel:

<?php
$to      = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
  'Reply-To: [email protected]' . "\r\n" .
  'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?> 

 

Hvis du for eksempel sender en epost til deg selv med bestilling, deretter til din kunde med beskjed om at eposten er sendt:

$to = "[email protected]";
$subject = $_POST['subject'];
$message = $_POST['message'];
$headers = $_POST['headers'];
$sendmail = mail($to, $subject, $message, $headers);
if (!$sendmail) {
echo "Kunne ikke sende mail.";
exit;
}
// Forutsetter at $header inneholder en epostaddresse for klienten
$confirmmsg = "Din ordre er sendt. Blablabla.";
$subject = "Ordre mottat.";
$to = "Avsender: $to";
$sendmail = mail($headers, $subject, $confirmmsg, $to);
if (!sendmail) {
echo "Kunne sende epost, men kunne ikke sende bekreftelse på at ordren er mottat.";
exit;
}
else {
echo "Brekreftelse sendt til din epost.";
}

Forutsetter at du selv står for delen med å sjekke at det ikke blir noe tull i innholdet i $message.

Gi oss koden din, og vi har mulighet til å se hva som er feil.

Lenke til kommentar
Ja, og nettopp derfor må vi nesten få se resten av koden din. I det minste variablene $to, $subject, $message og $headers.

eh nei, han sier klart og tydelig at han fyller inn relevant info og kjører koden som det eneste han gjør - angi en emailadresse må man nesten anta at han klarer å få til. han får heller ingen parsefeil.

 

det er mange issuse relatert til mail() - såpass mange at man på ingen måte kan konkludere at feilen må være andre steder i koden.

 

hvis webserveren kjører på windows f.eks, må smtp server angis.

 

hvis han kjører linux og lokal smtp, kan det hende at mottagers MX host blokkerer denne (pga spam),

 

årsakene kan være mange.

Lenke til kommentar
Ja, og nettopp derfor må vi nesten få se resten av koden din. I det minste variablene $to, $subject, $message og $headers.

eh nei, han sier klart og tydelig at han fyller inn relevant info og kjører koden som det eneste han gjør - angi en emailadresse må man nesten anta at han klarer å få til. han får heller ingen parsefeil.

 

det er mange issuse relatert til mail() - såpass mange at man på ingen måte kan konkludere at feilen må være andre steder i koden.

 

hvis webserveren kjører på windows f.eks, må smtp server angis.

 

hvis han kjører linux og lokal smtp, kan det hende at mottagers MX host blokkerer denne (pga spam),

 

årsakene kan være mange.

Ja, det stemmer nok det. Jeg setter selvfølgelig pris på respons fra Me Sjøl også, bare sånn at det er sagt, men det er nok riktig det du sier her Torbjørn.

 

Webområdet mitt ligger på serveren til høgskolen i Oslo, og jeg tenker at det kanskje kan være enkelte fenomener som man burde ta hensyn til i så måte. Jeg har forandret PATH-variabelen slik at den inkluderer /usr/lib på skolens server, der da sendmail ligger.

 

Er det noe her du kan gripe fatt Torbjørn så setter jeg stor pris på det - jeg har kjørt meg helt fast.

Lenke til kommentar

det første du bør gjøre, er å ta fatt i brukerstøtten på høyskolen, og informer om at det ikke lar seg gjøre å sende mail fra php - dette er noe de burde kunne ordne opp i. Det er noe vanskelig å ta det herfra fordi vi ikke uten videre kjenner høyskoleserverne

Lenke til kommentar
det første du bør gjøre, er å ta fatt i brukerstøtten på høyskolen, og informer om at det ikke lar seg gjøre å sende mail fra php - dette er noe de burde kunne ordne opp i. Det er noe vanskelig å ta det herfra fordi vi ikke uten videre kjenner høyskoleserverne

Ja, det var det første jeg gjorde, men har ikke fått noe respons ennå. Vel, vel, takk for tilbakemeldinger.

 

 

Almeraldo

Lenke til kommentar

Du kan jo prøve denne funksjonen:

 

<?
 set_ini("SMTP", "mail.netcom.no");
 mail(osv, osv, osv, osv);
?>

 

Skal være mulig å sette en annen SMTP-server for ditt skript. Let litt på nett om set_ini. Vet ikke helt om den fungerer...

Lenke til kommentar
det første du bør gjøre, er å ta fatt i brukerstøtten på høyskolen, og informer om at det ikke lar seg gjøre å sende mail fra php - dette er noe de burde kunne ordne opp i. Det er noe vanskelig å ta det herfra fordi vi ikke uten videre kjenner høyskoleserverne

Ja, det var det første jeg gjorde, men har ikke fått noe respons ennå. Vel, vel, takk for tilbakemeldinger.

 

 

Almeraldo

Du kan jo prøve phpmailer

 

http://phpmailer.sourceforge.net/

 

Da kan du sende via SMTP (med authentisering), i tillegg til mye annet. Når du publiserer siden på en server med sendmail, kan du bytte om slik at phpmailer benytter dette. I tillegg har den jo mange andre fordeler! :yes:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...