maweerMedlem sedan juli 2012123 inlägg Hej
Jag får inte rätt på det här :)
Jag vill hämta alla email adresser från min databas och skicka mail till alla samtidigt, men jag får inte rätt på det. Jag får inget felmeddelande någon stans, men det kommer inga mail
Någon snäll som vill hjälpa mig och se vad jag gjort för galet
<?
$hamta = "SELECT * FROM adresser WHERE email";
$resultat = mysql_query($hamta) or die("Det gick inte att hämta information från databasen!");
while($rad = mysql_fetch_array($resultat))
$today = date("d M, Y");
$to = "$_POST[email]";
$from = "Mig";
$subject = "email till alla";
$forminfo =
"Informationssidan är uppdaterad:\n
$_POST[namn]\n
http://sida.se/medlem/\n
Mailet går inte att svara på.
Skickat den: $today\n\n";
$formsend = mail("$to", "$subject", "$forminfo", "From: $from\r\nReply-to:$from");
?>
Det verkar som du hämtar adresserna från en databas? Men du skriver:
$_post['email']
Alltså du försöker hämta ett värde från ett formulär.
Varför skriver du inte bara ut alla variabler med echo och ser om de stämmer. Sen kan du exempelvis skriva:
if(mail(....)){
echo "brevet skickades";
}else{
echo"brevet skickades inte";
}
för att se vilka adresser som inte gick att skicka till osv...
maweerMedlem sedan juli 2012123 inlägg Så här gjorde jag och då skrev den ut mailadresser
<?
require 'conn.php';
$sql = mysql_query("SELECT * FROM adresser ORDER BY namn ASC LIMIT 50");
while ($rad = mysql_fetch_array($sql))
{
$namn = $rad['namn'];
$instrument = $rad['instrument'];
$telefonh = $rad['telefonh'];
$telefonm = $rad['telefonm'];
$email = $rad['email'];
$date = $rad['datum'];
echo($rad["email"]);
}
?>
men när jag la till
mail($rad['email'], $subject, $message, $headers);
så skickades inget mail
Först så sparar du ju $rad['email'] i variabeln $email. Så du borde ju använda den variabeln och skriva:
mail($email, $subject, $message);
Sen för att se om mejlet skickas eller inte så kan du skriva:
if(mail($email, $subject, $message)){
echo "skickades";
}else{
echo "skickades inte";
}
Istället för "mail($email, $subject, $message);"
Sen har du några variabler som heter $subject, $message, $headers? Headers verkar vara "optional" alltså att den inte behövs om du inte vill. Du kan dock använda den för att skriva vem som skickat, cc, bcc osv... De andra två kanske i allafall måste vara definierade?
Lägg till:
$subject="ett ämne";
$message="ett meddelande";
innan mail kommandot.
Sen så kan mejlet hamna i skräpposten så du kan ju kolla där? En annan sak du bör kolla är ju att du har skrivit in rätt emailadress i databasen ;)
PeddaMedlem sedan juni 20006 032 inlägg Första frågan:
Var kör du scriptet? På din egna dator eller ett webbhotell?
Om det är på din egna dator, har du konfigurerat PHP för att kunna skicka mail? D.v.s ställt in smtp mm.
maweerMedlem sedan juli 2012123 inlägg @ noshornin: Det blev "skickades inte"
Hahaha jodå, jag har skrivet rätt mailadress, det har jag kollat 788 gånger :)
Men det lustiga är att det skrivs ut när jag skriver echo($rad["email"]);
@ Pedda: Jag kör det på ett webbhotell, så det hoppas jag att jag slipper :)
Börja misstänka väldigt skarpt att jag har gjort något helt konstigt i koden
För hur jag än gör så står det "skickades inte"
<?
require 'conn.php';
$sql = mysql_query("SELECT * FROM adresser ORDER BY namn ASC LIMIT 50");
while ($rad = mysql_fetch_array($sql))
{
$namn = $rad['namn'];
$instrument = $rad['instrument'];
$telefonh = $rad['telefonh'];
$telefonm = $rad['telefonm'];
$email = $rad['email'];
$date = $rad['datum'];
$subject="ett ämne";
$message="ett meddelande";
mail($email, $subject, $message);
}
if(mail($email, $subject, $message)){
echo "skickades";
}else{
echo "skickades inte";
}
?>
<?
require 'conn.php';
$sql = mysql_query("SELECT * FROM adresser ORDER BY namn ASC LIMIT 50");
while ($rad = mysql_fetch_array($sql))
{
$namn = $rad["namn"];
$instrument = $rad["instrument"];
$telefonh = $rad["telefonh"];
$telefonm = $rad["telefonm"];
$email = $rad["email"];
$date = $rad["datum"];
$subject="ett ämne";
$message="ett meddelande";
if(mail($email, $subject, $message)){
echo "skickades";
}else{
echo "skickades inte";
}
}
?>
tänkte jag :P
Nu la du if mail grejen utanför loopen. Alltså mail() funktionen är en boolean funktion. När den körs så returneras true eller false.
En annan sak jag såg nu var att du skriver $rad['datum']. Med ' istället för ". Vet inte om det spelar någon roll men du kan ju prova koden ovanför och se...
maweerMedlem sedan juli 2012123 inlägg Aha du tänker så :P
Tyvärr så blev det inte skickat
Alltså, egentligen så är det ju endast mailadressen jag behöver, så jag förstår faktiskt inte själv varför JAG hämtar all information :)
Borde det inte räcka med att jag skriver
<?
require 'conn.php';
$sql = mysql_query("SELECT * FROM adresser ORDER BY namn ASC LIMIT 50");
while ($rad = mysql_fetch_array($sql))
{
$email = $rad["email"];
$subject="ett ämne";
$message="ett meddelande";
if(mail($email, $subject, $message)){
echo "skickades";
}else{
echo "skickades inte";
}
}
?>
Fast, det hjälpte inte ändå
Ja....jag antar att du märker att jag inte är så duktig på detta :)
Jo det räcker.
Men om du skriver
echo $email;
nu, skrivs mejladressen ut då?
maweerMedlem sedan juli 2012123 inlägg Jodå :)
Jag la den i
}else{
echo "skickades inte";
echo $email;
}
och då fick jag skickades inte och adressen utskriven
och lika dant blev det om jag la den efter den allra sista "måsvingen"
maweerMedlem sedan juli 2012123 inlägg Men vänta...förlåt!
Det skickades ju... :) :)
Skall jag plocka bort if-satsen eller skall jag ta bort alla echo
Nice att det löste sig. Du kan ju göra som du vill. Jag skulle behåll if-satsen och utskriften för att se om det blir något fel i framtiden.
Du kan även markera det inlägget som hjälpte dig att lösa problemet som lösning i den här tråden. För om det var mitt inlägg så får jag ett extra poäng på forumet ;)
maweerMedlem sedan juli 2012123 inlägg Alltså du skall ha stort tack för hjälpen :)
It made my day!
Hahahaha men klart att du skall ha extra poäng för det :)
Ännue en gång tack :)
maweerMedlem sedan juli 2012123 inlägg Alltså förlåt det här vad det skummaste jag har varit med om
Jag har inte gjort något med koden eller rört den, men helt plötsligt så funkar det inte...märkligt värre :o
Det blir som innan att den skriver ut på skärmen att det inte och skickade och den skriver ut mailadressen
<?
require 'conn.php';
$sql = mysql_query("SELECT * FROM adresser ORDER BY namn ASC LIMIT 50");
while ($rad = mysql_fetch_array($sql))
{
$email = $rad["email"];
$subject="ett ämne";
$message="ett meddelande";
if(mail($email, $subject, $message)){
echo "skickades";
}else{
echo "skickades inte";
}
}
echo $email;
?>
Kan det vara webbhotellet som spökar eller har jag lyckats att skriva dit något i koden som jag inte ser omedvetet :)
Det där kan omöjligt vara fel om epostadressen skrivs ut. Tror nog det kan vara ditt webbhotell. Vilket webbhotell har du? Försök mejla dem och fråga...
maweerMedlem sedan juli 2012123 inlägg Ja jag håller med dig :)
Och iom att det funkade klockrent innan så!
Jag har b-one som webbhotell, får nog göra det!
Jag får se i morgon om det har löst sig :)
Stort tack i alla fall :)
maweerMedlem sedan juli 2012123 inlägg Fick just ett svar på varför det slutade att fungera helt plöstligt igår.
Man måste ange en epostadress under sin domän hos one.com, annars är
begränsningen cirka 20 mail per dygn. Och det hade inte jag gjort!
Tänkte jag skriver det ifall det kan hjälpa någon :)