Gå til innhold

Få maillist script til å fungere. Mail() feil?


Anbefalte innlegg

Heisann.. I hele dag har jeg prøvd å finne meg ett nyhetsbrev script, og har funnet mange. men ingen fungerer desverre :hmm: Og etter å ha lett en liten stund tror jeg at noe ved mail() innstillingene er feil på serveren. Men skjønner ikke så mye av dette;

¨¨

http://www.php.net/manual/en/function.mail.php

 

Noen som kan hjelpe meg å få dette scriptet å fungere;

 

send.php

 

<?php

require("functions.php");

 

 

 

# No-cache headers:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

header("Cache-Control: no-cache, must-revalidate");

header("Pragma: no-cache");

 

 

 

sidehoved("", 0);

echo "<center>\n";

 

 

 

$kommando = mysql_query("select afsender, emne, ebrev from $mainTable where liste = '".addslashes($liste)."'");

$resultat = mysql_fetch_array($kommando);

$af = stripslashes($resultat[afsender]);

$em = stripslashes($resultat[emne]);

$te = stripslashes($resultat[ebrev]);

 

 

 

if ($start < $iAlt) {

if (($slut + 10) > $iAlt) $slut = $iAlt;

else $slut = 10;

 

$kommando = mysql_query("select epostadresse, id from ".addslashes($liste)." where godkendt = '1' limit ".addslashes($start).", $slut");

 

if (($start + 10) > $iAlt) $naeste = $iAlt;

else $naeste = $start + 10;

 

$fra = $start + 1;

 

echo "$s86 $fra $s87 $naeste $s97 $iAlt.\n";

echo "<h3>$s88</h3>\n";

 

while ($resultat = mysql_fetch_array($kommando)) {

$ep = stripslashes($resultat[epostadresse]);

$id = stripslashes($resultat[id]);

$nyte = str_replace("[RCPT_EMAIL]", $ep, $te);

$nyte = str_replace("[sUBSCRIBE_URL]", "http://$HTTP_HOST".dirname($PHP_SELF)."/confirm.php?liste=$liste&abonner=1&epostadresse=".urlencode($ep)."&id=$id", $nyte);

$nyte = str_replace("[uNSUBSCRIBE_URL]", "http://$HTTP_HOST".dirname($PHP_SELF)."/confirm.php?liste=$liste&abonner=0&epostadresse=".urlencode($ep)."&id=$id", $nyte);

 

mail($ep, $em, $nyte, "From: $af\n$ekstraHeadere");

}

 

 

 

echo "<script language=\"javascript\">\n";

echo "<!--\n";

echo "window.location.href = \"http://$HTTP_HOST$PHP_SELF?liste=$liste&start=$naeste&iAlt=$iAlt\"\n";

echo "// -->\n";

echo "</script>\n";

}

 

 

 

else {

echo "<h3>$s85</h3>\n";

echo "<form action='index.php' method='post'>\n";

echo "<input type='submit' value='$s104'>\n";

echo "</form>\n";

}

 

 

 

echo "</center>\n";

sidefod();

?>

 

 

 

functions.php

 

<?php

$version = "1.16";

require("settings.php");

require($languageFile);

 

 

 

if (basename($PHP_SELF) != "subscribe.php" && basename($PHP_SELF) != "confirm.php") {

if (!$PHP_AUTH_USER) {

header("WWW-Authenticate: Basic realm=\"Postlister\"");

header("HTTP/1.0 401 Unauthorized");

echo $s62;

exit;

}

else {

if ($PHP_AUTH_USER != $username || $PHP_AUTH_PW != $password) {

echo $s62;

exit;

}

}

}

 

 

 

mysql_connect($databaseHost, $databaseUsername, $databasePassword);

mysql_select_db($databaseName);

 

 

 

$uniktId = uniqid("pl");

$ekstraHeadere = "X-Mailer: Postlister $version";

 

 

 

function sidehoved($titel = "", $menu = 1) {

if (!$titel) $titel = "Postlister";

else $titel = "Postlister | $titel";

 

$aStyle = "text-decoration: none; color: white";

$adskiller = "    |    ";

 

echo "<html><head><title>$titel</title>\n";

echo "<style type=text/css><!--\n";

echo "body, div { background: white; font-family: helvetica; font-size: 10pt }\n";

echo "td { font-family: helvetica; font-size: 10pt }\n";

echo "td.menu { background: black; color: white }\n";

echo "td.tilmelding { background: navy; color: white }\n";

echo "--></style>\n";

echo "</head>\n\n\n\n";

 

echo "<body marginheight=0 marginwidth=0 topmargin=0 leftmargin=0>\n";

 

if ($menu != 0) {

echo "<table width=100% border=0 cellspacing=0 cellpadding=5>\n";

echo "<tr><td class=menu>\n";

echo "<center>\n";

 

echo "<a href=\"index.php\" style=\"$aStyle\">$GLOBALS[s2]</a>\n";

echo "$adskiller\n";

echo "<a href=\"subscribers.php\" style=\"$aStyle\">$GLOBALS[s3]</a>\n";

echo "$adskiller\n";

echo "<a href=\"import.php\" style=\"$aStyle\">$GLOBALS[s105]</a>\n";

echo "$adskiller\n";

echo "<a href=\"edit.php\" style=\"$aStyle\">$GLOBALS[s4]</a>\n";

echo "$adskiller\n";

echo "<a href=\"lists.php\" style=\"$aStyle\">$GLOBALS[s5]</a>\n";

echo "$adskiller\n";

echo "<a href=\"README.html\" style=\"$aStyle\">$GLOBALS[s1]</a>\n";

 

echo "</center>\n";

echo "</td></tr>\n";

echo "</table>\n";

}

echo "<div style=\"margin: 15px\">\n\n";

}

 

 

 

function sidefod() {

echo "</div>\n";

echo "</body></html>";

}

 

 

 

function fejl($fejlbesked = "") {

echo "<h3>$GLOBALS[s8]</h3>\n";

echo "$fejlbesked\n";

echo "<form><input type=button value=\"<<< $GLOBALS[s9]\" onClick=history.back()></form>\n";

echo "</div>\n";

echo "</body></html>";

exit;

}

 

 

 

function vaelgListe($fil) {

if (!$GLOBALS[liste]) {

echo "<h3>$GLOBALS[s12]</h3>\n";

echo "<form action=\"$fil\" method=get>\n";

 

$kommando = mysql_query("select liste from $GLOBALS[mainTable]");

$antalRaekker = mysql_num_rows($kommando);

 

if ($antalRaekker == 0) {

# "There are no lists":

echo "$GLOBALS[s14]\n";

}

else {

echo "<select name=liste>\n";

 

while ($resultat = mysql_fetch_array($kommando)) {

echo "<option value=\"$resultat[liste]\">$resultat[liste]\n";

}

 

echo "</select>\n";

echo "<input type=submit value=\"$GLOBALS[s13]\">\n";

}

 

echo "</div>\n";

echo "</body></html>";

 

exit;

}

}

?>

 

 

Eller har forslag til ett som fungerer fra før:)

Endret av HoaXed
Lenke til kommentar
Videoannonse
Annonse
Har du satt opp en SMTP server?

Sjekk både i Script og i PHP.ini.

Hvis du ikke har en kan du bare bruke denne her:

smtp.online.no

5583830[/snapback]

 

hvor finner jeg php.ini? bruker smtp mail fra serberen fra før. og får feks sendt meldinger fra kontakt script. :hmm:

Lenke til kommentar
Viser seg at det er barer hotmail som ikke får mailen. Iallefal får mailen min på serveren mottatt meldingen. noen som vet hvorfor?

5585906[/snapback]

 

mayb prøve different 'headers'?

det med smtp kan du prøve ini_set("SMTP", "smtp.frisurf.no"); og gjør samme med smtp_port eller noe, funker for meg ihvertfall

Lenke til kommentar
Viser seg at det er barer hotmail som ikke får mailen. Iallefal får mailen min på serveren mottatt meldingen. noen som vet hvorfor?

5585906[/snapback]

 

mayb prøve different 'headers'?

det med smtp kan du prøve ini_set("SMTP", "smtp.frisurf.no"); og gjør samme med smtp_port eller noe, funker for meg ihvertfall

5586047[/snapback]

 

Er litt langt utafor her jeg nå. beklager. Men hvor finner jeg denne ini_set og php.ini? :)

Lenke til kommentar
Gjest Slettet+6132
Er litt langt utafor her jeg nå. beklager. Men hvor finner jeg denne ini_set og php.ini? :)

5586641[/snapback]

 

php.ini er konfigurasjonsfilen til php, den finner du enten i mappa til webserveren, eller et annet sted :p

 

ini_set er en funksjon i php som endrer innstillinger i php.ini midlertidig for det aktuelle scriptet (innstillingene blir fortsatt de samme for andre script, det blir kun endra for selve scriptet mens det kjører)

Lenke til kommentar
Viser seg at det er barer hotmail som ikke får mailen. Iallefal får mailen min på serveren mottatt meldingen. noen som vet hvorfor?

5585906[/snapback]

 

mayb prøve different 'headers'?

det med smtp kan du prøve ini_set("SMTP", "smtp.frisurf.no"); og gjør samme med smtp_port eller noe, funker for meg ihvertfall

5586047[/snapback]

 

Har da lagt ini_set("SMTP", "mail.h-base.org"); i functions.php og send.php , da dette ikke fungerte prøvde jeg også med smtp.frisurf.no og fungerte desverre ikke dette heller. Aner ikke hva som hindrer mailen å bli sendt:(

Lenke til kommentar
Gjest Slettet+6132
Har da lagt ini_set("SMTP", "mail.h-base.org"); i functions.php og send.php , da dette ikke fungerte prøvde jeg også med smtp.frisurf.no og fungerte desverre ikke dette heller. Aner ikke hva som hindrer mailen å bli sendt:(

5586726[/snapback]

 

Får du noen feilmelding eller noe da?

Lenke til kommentar
Har da lagt ini_set("SMTP", "mail.h-base.org"); i functions.php og send.php , da dette ikke fungerte prøvde jeg også med smtp.frisurf.no og fungerte desverre ikke dette heller. Aner ikke hva som hindrer mailen å bli sendt:(

5586726[/snapback]

 

Får du noen feilmelding eller noe da?

5586787[/snapback]

 

Nei, mailen kommer fram til mailen min på serveren ****@h-base.org men ikke på noen hotmail adresser, vet ikke når det gjelder andre domener. Vis noen vil sjekke om det fungerer for dem, test gjerne på H-Base så kan jeg fjerne dere igjen etterpå. Man skal få en velkomst melding. :)

Lenke til kommentar
Gjest Slettet+6132
Nei, mailen kommer fram til mailen min på serveren ****@h-base.org men ikke på noen hotmail adresser, vet ikke når det gjelder andre domener. Vis noen vil sjekke om det fungerer for dem, test gjerne på H-Base så kan jeg fjerne dere igjen etterpå. Man skal få en velkomst melding. :)

5586820[/snapback]

 

Den kommer nok frem til hotmail, men havner i SPAM-bøtta. Dette fordi du ikke har noen "skikkelig" mailserver. Enkelte selskaper tar ikke mailservere seriøst om de ikke har minst to forskjellige MX-records på domenet, osv.

Endret av Slettet+6132
Lenke til kommentar
Nei, mailen kommer fram til mailen min på serveren ****@h-base.org men ikke på noen hotmail adresser, vet ikke når det gjelder andre domener. Vis noen vil sjekke om det fungerer for dem, test gjerne på H-Base så kan jeg fjerne dere igjen etterpå. Man skal få en velkomst melding. :)

5586820[/snapback]

 

Den kommer nok frem til hotmail, men havner i SPAM-bøtta. Dette fordi du ikke har noen "skikkelig" mailserver. Enkelte selskaper tar ikke mailservere seriøst om de ikke har minst to forskjellige MX-records på domenet, osv.

5586901[/snapback]

 

kan jeg fikse dette? fant noe om mx records i cpanel. Men mener du useriøse meldinger?, eller HELE spam bøtta:P

Lenke til kommentar
Gjest Slettet+6132
kan jeg fikse dette? fant noe om mx records i cpanel. Men mener du useriøse meldinger?, eller HELE spam bøtta:P

5586984[/snapback]

 

Altså, MX-records er kun for mail. Dersom domene.no er satt til 127.0.0.1 kan du fortsatt legge til flere mx-records slik at du kan bruke domenet til mail. Det jeg mener er at for at noen selskaper skal ta deg som en seriøs mailserver må du ha to separate mailservere på forskjellige iper (dette er for at det skal være størst mulig sjanse for at mailen kommer frem). Alle ISPer osv har minst to mailservere, hvor den ene er "hoved" og den andre er "reserve".

 

Og nå vet jeg ikke helt hvordan hotmail fungerer for tiden, er mange år siden jeg kvitta meg med den dritten ;)

Lenke til kommentar

Hotmail slenger ut mye slik mail som spam.

 

Vanlige problemer med mail()

 

1. Ikke korrekt satt opp sendmail (som ofte brukes) (kan prøve å sette opp masken i sendmail.cf elns. Slik "lurte" jeg i hvert fall oslo kommune sitt mailsystem)

2. Du sender fra localhost elns slik posten blir slettet

3. Relay er skjeldent lovlig på mailservere (ergo du kan ikke bruke en epostserver med en lokal epostadresse mv.)

4. Du mangler headersettings.

 

Slik satte jeg det opp på testscriptet til nextgencms.com

 

****************

$subject = str_replace("%ticketid%", $ticket_id, $reply_topic);
$message = nl2br(str_replace("%ticketid%", $ticket_id, $reply_body));
$headers = "From: $from_mail\r\n" .
      'X-Mailer: PHP/' . phpversion() . "\r\n" .
      "MIME-Version: 1.0\r\n" .
      "Content-Type: text/html; charset=utf-8\r\n" .
      "Content-Transfer-Encoding: 8bit\r\n\r\n";

// Send
mail($email, $subject, $message, $headers);

Endret av allyse
Lenke til kommentar
1. Ikke korrekt satt opp sendmail (som ofte brukes) (kan prøve å sette opp masken i sendmail.cf elns. Slik "lurte" jeg i hvert fall oslo kommune sitt mailsystem)

Masken i sendmail.cf?

 

2. Du sender fra localhost elns slik posten blir slettet

Kan jeg sjekke dette på noen måte?

 

3. Relay er skjeldent lovlig på mailservere (ergo du kan ikke bruke en epostserver med en lokal epostadresse mv.)

Altså må jeg bytte mailen som er default til en utenfor?

 

4. Du mangler headersettings.

 

Nærmeste jeg finner i send.php som ligger øverst på siden er

    

   mail($ep, $em, $nyte, "From: $af\n$ekstraHeadere");

 

5587239[/snapback]

 

Prøvde også med ett ferdigscript fra serveren, men mailen komm ikke fram denne gangen heller.. :(

 

Forslag nå? Trenger dette veldig ,noen som kanskje har noen andre muligheter?

Endret av HoaXed
Lenke til kommentar
Ta en tail -f på mailloggen når du sender så ser du med en gang hvor den rejecter :)

5587786[/snapback]

 

Søkye litt etter tail -f , men :innocent: Hva betyr det? Liker å lære av dette også. :) Mem har funnet ut at mailen ikke blir sendt til noen andre en @h-base.org. Og dette betyr vel at mailen ikke forlater serveren. Hva kan jeg gjøre med det?

 

Og hva er tail -f?

Lenke til kommentar
Ta en tail -f på mailloggen når du sender så ser du med en gang hvor den rejecter :)

5587786[/snapback]

 

Søkye litt etter tail -f , men :innocent: Hva betyr det? Liker å lære av dette også. :) Mem har funnet ut at mailen ikke blir sendt til noen andre en @h-base.org. Og dette betyr vel at mailen ikke forlater serveren. Hva kan jeg gjøre med det?

 

Og hva er tail -f?

5590132[/snapback]

 

tail -f er en kommando du kjører i linux for å hente opp mailloggen og la den kontinurelig oppdatere seg. Dvs når du sender en mail vil du se alt maskinen gjør og hvilke svar maskinen får :)

 

Jeg vil tro du har et relayingproblem (altså at du får ikke send til noe annet enn @h-base.org hvis du sender fra en [email protected]...

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...