![]() |
|
|
|||||||
| PHP Här diskuteras allt som har med scriptspråket PHP att göra. |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
Medlem
Registrerad: 2012-07-15
Inlägg: 120
Lösningar: 0 |
Skicka mail till alla i tabellen email
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 Kod:
<?
$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");
?>
|
|
|
|
|
|
#2 |
|
Medlem
Registrerad: 2008-08-23
Ort: haninge
Inlägg: 662
Lösningar: 11 |
Det verkar som du hämtar adresserna från en databas? Men du skriver:
Kod:
$_post['email'] Varför skriver du inte bara ut alla variabler med echo och ser om de stämmer. Sen kan du exempelvis skriva: Kod:
if(mail(....)){
echo "brevet skickades";
}else{
echo"brevet skickades inte";
}
|
|
|
|
|
|
#3 |
|
Medlem
Registrerad: 2012-07-15
Inlägg: 120
Lösningar: 0 |
Så här gjorde jag och då skrev den ut mailadresser
Kod:
<?
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"]);
}
?>
Kod:
mail($rad['email'], $subject, $message, $headers); Senast redigerad av maweer, 2012-07-15 klockan 18:47 |
|
|
|
|
|
#4 |
|
Medlem
Registrerad: 2008-08-23
Ort: haninge
Inlägg: 662
Lösningar: 11 |
Först så sparar du ju $rad['email'] i variabeln $email. Så du borde ju använda den variabeln och skriva:
Kod:
mail($email, $subject, $message); Kod:
if(mail($email, $subject, $message)){
echo "skickades";
}else{
echo "skickades inte";
}
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: Kod:
$subject="ett ämne"; $message="ett meddelande"; 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
|
|
|
|
|
|
#5 |
|
Forumvärd
Registrerad: 2000-06-28
Ort: Universums mittpunkt
Inlägg: 4 788
Lösningar: 211 |
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.
__________________
Om jag var blygsam,skulle jag vara perfekt ><((((º> |
|
|
|
|
|
#6 |
|
Medlem
Registrerad: 2012-07-15
Inlägg: 120
Lösningar: 0 |
@ 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" Kod:
<?
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";
}
?>
Senast redigerad av maweer, 2012-07-16 klockan 12:17 |
|
|
|
|
|
#7 |
|
Medlem
Registrerad: 2008-08-23
Ort: haninge
Inlägg: 662
Lösningar: 11 |
Kod:
<?
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";
}
}
?>
![]() 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... |
|
|
|
|
|
#8 |
|
Medlem
Registrerad: 2012-07-15
Inlägg: 120
Lösningar: 0 |
Aha du tänker så
![]() 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 Kod:
<?
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";
}
}
?>
Ja....jag antar att du märker att jag inte är så duktig på detta
|
|
|
|
|
|
Markerad som löst av maweer #9 |
|
Medlem
Registrerad: 2008-08-23
Ort: haninge
Inlägg: 662
Lösningar: 11 |
Jo det räcker.
Men om du skriver Kod:
echo $email; |
|
|
|
|
|
#10 |
|
Medlem
Registrerad: 2012-07-15
Inlägg: 120
Lösningar: 0 |
Jodå
![]() Jag la den i Kod:
}else{
echo "skickades inte";
echo $email;
}
och lika dant blev det om jag la den efter den allra sista "måsvingen" |
|
|
|
|
|
#11 |
|
Medlem
Registrerad: 2012-07-15
Inlägg: 120
Lösningar: 0 |
Men vänta...förlåt!
Det skickades ju... ![]() ![]() Skall jag plocka bort if-satsen eller skall jag ta bort alla echo |
|
|
|
|
|
#12 |
|
Medlem
Registrerad: 2008-08-23
Ort: haninge
Inlägg: 662
Lösningar: 11 |
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
|
|
|
|
|
|
#13 |
|
Medlem
Registrerad: 2012-07-15
Inlägg: 120
Lösningar: 0 |
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
|
|
|
|
|
|
#14 |
|
Medlem
Registrerad: 2008-08-23
Ort: haninge
Inlägg: 662
Lösningar: 11 |
yeay
tack för poängen
|
|
|
|
|
|
#15 |
|
Medlem
Registrerad: 2012-07-15
Inlägg: 120
Lösningar: 0 |
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 ![]() Det blir som innan att den skriver ut på skärmen att det inte och skickade och den skriver ut mailadressen Kod:
<?
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;
?>
|
|
|
|
|
|
#16 |
|
Medlem
Registrerad: 2008-08-23
Ort: haninge
Inlägg: 662
Lösningar: 11 |
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...
|
|
|
|
|
|
#17 |
|
Medlem
Registrerad: 2012-07-15
Inlägg: 120
Lösningar: 0 |
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
|
|
|
|
|
|
#18 |
|
Medlem
Registrerad: 2012-07-15
Inlägg: 120
Lösningar: 0 |
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
|
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|