Avatar billede ujo33 Nybegynder
26. juli 2004 - 13:27 Der er 10 kommentarer

Kan ikke sende mail fra serveren

Jeg er ved at blive sindsyg af dette problem. Jeg har nemlig "installeret" OsCommerce på min internet udbyderens server. Så når jeg skal sende mail fra mailform f.eks. under kontakt os viser den ingen fejl meddelelse. Når jeg sender formularen så siger den at den er sendt, uden at komme noget fejl meddelelse. Men jeg får aldrig mailen.
I starten troede jeg at der var noget galt med OsCommerce's opsætning. Men da jeg prøvede forskellige mailforms skete det samme resultat.
Jeg har snakket med udbyderens mailserver "eksperten" og han sagde at jeg skal definere smtp koden til at sende til denne adresse: mail.greennet.gl . Han sagde koden skal komme igennem denne server.

Men jeg er ikke så god til at rode med scripts, så hvis jeg kan få hjælp fra dig *S* vil det være dejligt !
Avatar billede sone Nybegynder
26. juli 2004 - 13:36 #1
Der må være en setup/ini-fil i OsCommerce systemet, hvor du kan angive denne SMTP server.
Avatar billede supermand69 Nybegynder
26. juli 2004 - 13:43 #2
kan du ikke bare angive "trusted ip's" i opsætningen på SMTP serveren?? :) så man ikke behøver at gå igennem authentication
Avatar billede sone Nybegynder
26. juli 2004 - 13:56 #3
Han kører på en ISP webserver....
Avatar billede ujo33 Nybegynder
26. juli 2004 - 14:19 #4
>sone

Jeg har kigget på OsCommerce config* filen og der har man en directory til class mappen. Og under class mappen har man forskellige scripts. F.eks. har man en fil der hedder email.php og http_client.php osv.

Og inde i email.php har jeg ellers brugt en anden script som definere mail.greennet.gl men det lykkedes ikke. Indholdet af email.php står således ud fra linie 469:

-----------------------------------
/**
* Sends the mail.
*/

    function send($to_name, $to_addr, $from_name, $from_addr, $subject = '', $headers = '') {
      $to = (($to_name != '') ? '"' . $to_name . '" <' . $to_addr . '>' : $to_addr);
      $from = (($from_name != '') ? '"' . $from_name . '" <' . $from_addr . '>' : $from_addr);

      if (is_string($headers)) {
        $headers = explode($this->lf, trim($headers));
      }

      for ($i=0; $i<count($headers); $i++) {
        if (is_array($headers[$i])) {
          for ($j=0; $j<count($headers[$i]); $j++) {
            if ($headers[$i][$j] != '') {
              $xtra_headers[] = $headers[$i][$j];
            }
          }
        }

        if ($headers[$i] != '') {
          $xtra_headers[] = $headers[$i];
        }
      }

      if (!isset($xtra_headers)) {
        $xtra_headers = array();
      }

      if (EMAIL_TRANSPORT == 'smtp') {
        return mail($to_addr, $subject, $this->output, 'From: ' . $from . $this->lf . 'To: ' . $to . $this->lf . implode($this->lf, $this->headers) . $this->lf . implode($this->lf, $xtra_headers));
      } else {
        return mail($to, $subject, $this->output, 'From: '.$from.$this->lf.implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers));
      }
    }

/**
* Use this method to return the email
* in message/rfc822 format. Useful for
* adding an email to another email as
* an attachment. there's a commented
* out example in example.php.
*
* string get_rfc822(string To name,
*      string To email,
*      string From name,
*      string From email,
*      [string Subject,
*        string Extra headers])
*/

    function get_rfc822($to_name, $to_addr, $from_name, $from_addr, $subject = '', $headers = '') {
// Make up the date header as according to RFC822
      $date = 'Date: ' . date('D, d M y H:i:s');
      $to = (($to_name != '') ? 'To: "' . $to_name . '" <' . $to_addr . '>' : 'To: ' . $to_addr);
      $from = (($from_name != '') ? 'From: "' . $from_name . '" <' . $from_addr . '>' : 'From: ' . $from_addr);

      if (is_string($subject)) {
        $subject = 'Subject: ' . $subject;
      }

      if (is_string($headers)) {
        $headers = explode($this->lf, trim($headers));
      }

      for ($i=0; $i<count($headers); $i++) {
        if (is_array($headers[$i])) {
          for ($j=0; $j<count($headers[$i]); $j++) {
            if ($headers[$i][$j] != '') {
              $xtra_headers[] = $headers[$i][$j];
            }
          }
        }

        if ($headers[$i] != '') {
          $xtra_headers[] = $headers[$i];
        }
      }

      if (!isset($xtra_headers)) {
        $xtra_headers = array();
      }

      $headers = array_merge($this->headers, $xtra_headers);

      return $date . $this->lf . $from . $this->lf . $to . $this->lf . $subject . $this->lf . implode($this->lf, $headers) . $this->lf . $this->lf . $this->output;
    }
  }
?>

-----------------------------
Avatar billede sone Nybegynder
26. juli 2004 - 14:36 #5
Når funktionen mail() bruges til at afsende mails med, så er det PHP som skal konfigureres til dette.
Snak med dit webhotel om dette.
Avatar billede ujo33 Nybegynder
26. juli 2004 - 14:50 #6
Som sagt, jeg har ellers snakket med mail ansvarende, men han siger kun at jeg skal komme igennem mail.grennet.gl når jeg skal sende mails. Desværre har han ikke kendskab til PHP o.lign.
Så det er derfor jeg spørge jer/eksperter hvordan jeg kan gøre og hvad for en kode/script jeg skal bruge når jeg skal komme igennem mail.greennet.gl.
Avatar billede sone Nybegynder
26. juli 2004 - 15:01 #7
Du skal have rettet i php.ini filen i selve PHP installationen på webserveren,
eller integrede din kode med noget PHP kode som selv kan afsende mails.
Avatar billede ujo33 Nybegynder
26. juli 2004 - 15:35 #8
Jeg har spurgt udbyderen igen ang. om deres server information.
Det bruger Linux og har "globalt raq 4" på den og selvfølgelig kører med apache. Denne "global raq 4" begrænser smtp serveren at den ikke kører lokalt. (som min udbyder forklarede) Siger I jer noget om global raq 4?
Avatar billede ujo33 Nybegynder
26. juli 2004 - 15:36 #9
p.s. jeg har ikke adgang til php.ini.
Avatar billede danauktion Nybegynder
24. august 2004 - 13:51 #10
At mailen ikke når frem, er da et ISP problem : han har opsat den PHP, som du benytter og han har opsat Relay Serveren på Raq'en og han står formodentlig også for din DNS (?) - og det er alt sammen noget du ikke har adgang til.
Så problemet findes formodentlig i din DNS opsætning på udbyderens Raq4 - en almindelig mail() kommando fra PHP skal bare virke, hvis opsætningen er i orden iøvrigt.
Held og lykke
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