Avatar billede iggipop Nybegynder
01. november 2004 - 11:58 Der er 5 kommentarer og
1 løsning

Problemer med at sende mail

Hej !

Jeg har intet begreb om at kode PHP er dog lettere erfaren i ASP. Jeg kører egen web og mail server. Her har jeg først haft problemer i ASP med at bruge scripts der sender mail via min mailserver. Det er så løst med at afsender er min bruger på emailsystemet. Så det står således :
JMail.ServerAddress = "mitbrugernavn:mitkodeord@mail.minserver.dk"
Nu er problemet så at jeg har hentet et galleri fra sourceforge, som er skrevet i PHP. Det er kanon og virker fint bortset fra at man som bruger selv kan registrere sig. Og så skal systemet sende en mail. Jeg får følgende fejl :
Warning: mail(): SMTP server response: 550 <xxx@xxx.dk>, Recipient unknown in D:\Inetpub\Gallery\util.php on line 2962

Det er fordi min mailserver ikke laver accepterer relay tror jeg, men kan man ikke lave det så afsender står på samme måde som jeg gør i ASP så den sender via min godkendte bruger på mailserveren ?

Herunder er koden som jeg mener har noget med mailen at gøre :

function gallery_mail($to, $subject, $msg, $logmsg,
        $hide_recipients = false, $from = NULL) {
    global $gallery;
    if ($gallery->app->emailOn == "no") {
              gallery_error(_("Email not sent as it is disabled for this gallery"));
        return false;
    }
          if (!$to) {
              gallery_error(sprintf(_("Email not sent as no address provided"),
                          "<i>" . $to . "</i>"));
        return false;
    }
          if (!gallery_validate_email($to, true)) {
              gallery_error(sprintf(_("Email not sent to %s as it is not a valid address"),
                          "<i>" . $to . "</i>"));
        return false;
    }
    if ($hide_recipients) {
        $bcc=$to;
        $to="";
        $join=",";
    } else {
        $bcc="";
        $join="";
    }
    global $gallery, $HTTP_SERVER_VARS;
    if (!gallery_validate_email($from)) {
        if (isDebugging() && $from) {
            gallery_error( sprintf(_("Sender address %s is invalid, using %s."),
                          $from, $gallery->app->senderEmail));
              }
        $from = $gallery->app->senderEmail;
        $reply_to = $gallery->app->adminEmail;
    } else {
        $reply_to = $from;
    }
    if (isset($gallery->app->email_notification) &&
            in_array("bcc", $gallery->app->email_notification)) {
        $bcc .= $join.$gallery->app->adminEmail;
    }
    $additional_headers = "From: $from\r\nReply-To: $reply_to\r\n";
    $additional_headers .= "X-GalleryRequestIP: " . $HTTP_SERVER_VARS['REMOTE_ADDR'] . "\r\n";
    if ($bcc) {
        $additional_headers .= "Bcc: " . $bcc. "\r\n";
    }
    if (get_magic_quotes_gpc() ) {
        $msg = stripslashes($msg);
    }
    $result=mail($to, $gallery->app->emailSubjPrefix." ".$subject, emailDisclaimer().$msg, $additional_headers);
    if (isDebugging()) {
        print "<table>";
        print "<tr><td valign=\"top\">To:</td><td valign=\"top\">&lt;" .
            _("not shown") . "&gt;</td></tr>";
        print "<tr><td valign=\"top\">Subject:</td><td valign=\"top\">$subject</td></tr>";
        print "<tr><td valign=\"top\">";
        print str_replace(":", ":</td><td valign=\"top\">",
                ereg_replace(":[^:\n]*\n", ":&lt;" .
                    _("not shown") .
                    "&gt;</td></tr><tr><td valign=\"top\">",
                    $additional_headers));
        print "</td></tr>";
        print '<tr><td valign="top">' . _("Message") .
            ':</td><td valign="top">'. str_replace("\n", "<br>", $msg). '</td></tr>';
        print "</table>";
              if ($result) {
            print _("Email sent")."<br>";
        } else {
                  gallery_error(_("Email not sent"));
              }
    }
    emailLogMessage($logmsg, $result);
    return $result;
}

og linie 2962 er
$result=mail($to, $gallery->app->emailSubjPrefix." ".$subject, emailDisclaimer().$msg, $additional_headers);
Avatar billede sukos Juniormester
02. november 2004 - 09:18 #1
I php.ini, kan du måske sætte SMTP til

[mail function]
; For Win32 only.
SMTP = mitbrugernavn:mitkodeord@mail.minserver.dk
smtp_port = 25

?????
Avatar billede soccerdad Nybegynder
02. november 2004 - 09:34 #2
Der var tidligere lidt bøvl med "PEAR mail" pakken. Jeg oplevede en anden fejl af samme type på min 'nix server. En opgradering løste problemet.

Jeg kender ikke til php på en Windows server, men prøv at give den nedenstående kommando i en konsol:
pear upgrade mail

Du kan evt. læse mere her: http://pear.php.net/package/Mail
Avatar billede iggipop Nybegynder
02. november 2004 - 13:26 #3
sukos > Kanon...du har vundet...smid venligst et svar. ;o)

Et lille tillægsspørgsmål. Jeg har følgende test på mine ASP sider...kan det nemt omskrives til PHP så jeg kan smide det ind i min PHP side ?

<%
if isEmpty(session("UserID")) then
    Response.Redirect "bruger/asp/logadmin.asp?msg=" & Server.URLEncode ("Du skal være logget ind!")
end if
%>
Avatar billede sukos Juniormester
02. november 2004 - 14:26 #4
Jow da

<?php

if(!isset($_SESSION["UserID"])) {
header("Location:bruger/asp/logadmin.asp?msg=". urlencode("Du skal være logget ind!") ."");
exit();
}



?>
Avatar billede sukos Juniormester
02. november 2004 - 14:31 #5
Men hvis det nu er php som du redirecter til:

<?php

if(!isset($_SESSION["UserID"])) {
header("Location:/bruger/asp/logadmin.php?msg=". urlencode("Du skal være logget ind!") ."");
exit();
}

..........

?>

Her sender du så til roden af domænet " / ",

/bruger/asp/logadmin.php

I logadmin.php bruger du så:

<?php
if(isset($_GET["msg"]) && urldecode($_GET["msg"]) = "Du skal være logget ind!") {
echo"Login først!";
}
?>
Avatar billede iggipop Nybegynder
02. november 2004 - 15:04 #6
Jeg prøver...taak for hjælpen ;)
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