Am un fisier excel cu vreo 1500 de adrese de e-mail.Cineva ma intrebat daca poate trimite un singur e-mail la toate adresele odata si ori de cat are nevoie sa mai adauge cate o adresa la lista.
M-am gandit la un script php care sa adauge intr-un tabel dintr-o baza de date adresele de mail si dupa asta un select care sa copie toate adresele intr-o variabila $adress de exemplu.Intrebarea mea e , va merge varianta la care m-am gandit eu, sau exista alta mai buna?
As dori cateva idei sau informatii in legatura cu asta si daca se poate si ceva informatii cum sa fac ca email-urile sa nu se duca in folderul Spam.
Multumesc.
Trimitere E-Mail la mai multe adrese
-
- Mesaje:58
Trimitere E-Mail la mai multe adrese
MarPlo
Mesaje:4343
Vezi raspunsurile din subiectul de la aceasta adresa: php-mysql-xml/update-email-toti-utilizatorii-t908.html
Nu prea ai cum sa eviti ca dupa aceea email-urile sa nu fie puse in Spam. Asta depinde si de serviciul de email unde sunt trimise, daca detecteaza prea multe email-uri de la un IP sau adresa e-mail, il adauga in lista de Spam-eri.
Nu prea ai cum sa eviti ca dupa aceea email-urile sa nu fie puse in Spam. Asta depinde si de serviciul de email unde sunt trimise, daca detecteaza prea multe email-uri de la un IP sau adresa e-mail, il adauga in lista de Spam-eri.
tycyssg
Mesaje:58
Am inteles tot , din scripturile puse de tine mai putin asta:
Cod: Selectaţi tot
$headers .= 'Bcc: nume1@domeniu.com, nume1@domeniu.net' . "\r\n";
MarPlo
Mesaje:4343
Poti sa adaugi intr-un Array adresele preluate din baza de date, apoi, cu implode() le pui ca sir in $headers.
Ceva cam asa:
Ceva cam asa:
Cod: Selectaţi tot
$mails = array();
// cod pt. preluare adrese din baza de date
// in instructiunea WHILE() care parcurge acele date se foloseste asa, ca sa le adauge in array:
// $mails[] = $row['nume_coloana'];
// ...
$headers .= 'Bcc: '. implode(', ', $mails). "\r\n";
tycyssg
Mesaje:58
Am incercat eu sa fac ceva , dar nu cred ca am reusit...si nu cred ca este bine.
Acesta este codul:
Astea sunt erorile:
Acestea sunt liniile 15 si 30:
Nu am stiut ce trebuie sa pun la $to , si am renuntat, pentru ca am testat cu yahoo si am vazut ca nu e necesar sa ai o adresa de email daca ai completat campul BBC.
Acesta este codul:
Cod: Selectaţi tot
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$name= $_POST['name'];
$sub = $_POST['subject'];
$msg = $_POST['msj'];
$from = $_POST['email'];
$result=mysql_query("SELECT email FROM mails");
if(mysql_num_rows($result)>0)
{
while($row = mysql_fetch_array($result))
{
$mails[] = $row['email'];
}
}
else{
echo'No adress in data base';
}
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers = "From: $name <$from>";
$headers .= 'Bcc: '. implode(', ', $mails). "\r\n";
$send = mail($headers,$name,$sub,$msj);
if($send) { echo '<div>Message was sent successfully</div><br /><div>Press <a href="index.php">Here</a> to go back</div>'; }
else
{ echo '<div>Warning ! Message cannot be sent</div><br /><div>Press <a href="index.php">Here</a> to try again</div>'; }
?>
Cod: Selectaţi tot
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\send.php on line 15
No adress in data base
Warning: implode() [function.implode]: Invalid arguments passed in C:\AppServ\www\send.php on line 30
Message was sent successfully
Press Here to go back
Cod: Selectaţi tot
if(mysql_num_rows($result)>0) //15
$headers .= 'Bcc: '. implode(', ', $mails). "\r\n"; //30
MarPlo
Mesaje:4343
Nu stiu care sa fie problema in acel cod.
Mesajul: apare cand MySQL returneaza eroare la comanda SQL transmisa. Fiind o comanda atat de simpla, singura idee ar fi ca e o gresala la numele coloanei sau tabelului fata de cum e in baza de date.
Poti vedea eroarea de la MYSQL adaugand acest cod dupa transmiterea Select-ului:
Mesajul:
Cod: Selectaţi tot
mysql_num_rows(): supplied argument is not a valid MySQL result resource in
Poti vedea eroarea de la MYSQL adaugand acest cod dupa transmiterea Select-ului:
Cod: Selectaţi tot
if(mysql_errno()) {
echo '<br />'. mysql_error(). '<br />';
}
tycyssg
Mesaje:58
Am reusit pana la urma sa fac scriptul sa functioneze dar nu reusesc sa ii dau o valoare campului "From:"
Codul mai sus merge perfect doar ca atunci cand primesc msj , in loc sa apara adresa pe care o bag eu in formular apare una de genu 821729@linweb.ahost.me . Da stiu ca vei spune ca nu am nici o variabila pentru From dar cand adaugam o variabila pentru From:
apoi mergeam in
si adaugam in lista $from
cand incercam sa trimit msj imi apare acel msj de la els Warning ! Message canot be send. Cineva mi-a spus ca functia mail din php nu suporta mai mult de 4 variabile.
Apoi am sters $from din functia mail si am adaugat header.
La fel imi apare acel msj de Warning.
Apoi am incercat - fara headeru de From
Si unde trebuia sa apara msj apare adresa de e-mail pentru ca il i-a ca drept subiect.
Intr-un final am realizat ca cu headeru de From nu ma lasa sa trimit msj si nici cu 5 variabile in functia mail.Se poate gasi vreo rezolvare?
Cod: Selectaţi tot
<?php
$con = mysql_connect("*****","*****","*****");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$sub = $_POST['subject'];
$msg = $_POST['msj'];
$to='';
$message='<center>'.$sub.'</center><br />'.$msg.'<br /><br /><br />You recive this message because you are a member of <b>BIG MENU GB</b>.<br />
This message was sent by owner of <b>BIG MENU GB</b><br />';
mysql_select_db("****", $con);
$result=mysql_query("SELECT email FROM mails");
if(mysql_num_rows($result)>0)
{
while($row = mysql_fetch_array($result))
{
$mails[] = $row['email'];
}
}
else{
echo'No adress in data base';
}
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'Bcc: '.implode(",", $mails)."\r\n";
$send = mail($to,$sub,$message,$headers);
if($send) { echo '<div>Message was sent successfully</div><br /><div>Press <a href="index.php">Here</a> to go back</div>'; }
else
{ echo '<div>Warning ! Message canot be send</div><br /><div>Press <a href="index.php">Here</a> to try again</div>'; }
?>
Cod: Selectaţi tot
$from='Staff BIG MENU GB'.$_POST['email'];
Cod: Selectaţi tot
$send = mail($to,$sub,$message,$headers);
cand incercam sa trimit msj imi apare acel msj de la els Warning ! Message canot be send. Cineva mi-a spus ca functia mail din php nu suporta mai mult de 4 variabile.
Apoi am sters $from din functia mail si am adaugat header.
Cod: Selectaţi tot
$headers .= 'From: '.$_POST['email']."\r\n";
Apoi am incercat
Cod: Selectaţi tot
$send = mail($to,$from,$message,$headers);
Si unde trebuia sa apara msj apare adresa de e-mail pentru ca il i-a ca drept subiect.
Intr-un final am realizat ca cu headeru de From nu ma lasa sa trimit msj si nici cu 5 variabile in functia mail.Se poate gasi vreo rezolvare?
MarPlo
Mesaje:4343
Ar trebui sa mearga cu From in headers, asa:
De ce nu merge, nu cunosc; o fi de la serverul local de mail prin care PHP trimite email-urile.
Se poaste ca acel server sa ceara autentificare prin SMTP ca sa adauge adresa care vrei la From, daca nu, pune adresa setata in el. Chestii complicate, ma cam depasesc.
Dar aceeasi problema e discutata si rezolvata aici: problema email "from" .
Cod: Selectaţi tot
$headers = "From: Nume <". $_POST['email']. ">";
Se poaste ca acel server sa ceara autentificare prin SMTP ca sa adauge adresa care vrei la From, daca nu, pune adresa setata in el. Chestii complicate, ma cam depasesc.
Dar aceeasi problema e discutata si rezolvata aici: problema email "from" .
Endyca
Mesaje:1
Pentru a trimite mai multe emailuri, pana la 1000 si la fiecare ajunge separat, si video-email-uri sau video-conferinta, m-am abonat la:
talkfusion.com/
talkfusion.com/
Subiecte similare
- Regex pentru adrese
PHP - MySQL - XML Primul mesaj
Salut,Ultimul mesaj
As avea si eu nevoie de ajutor! incerc de ceva zile sa dezvolt un regex/ sau o alta solutie, sa vad daca intr-un string mai mare exista o...
Ai putea folosii o functie de localizare IP/browser, dar ar fii ceva individual, facusem eu in trecut o functie, ceva de verificare IP si blocare pe... - Trimitere automata email-uri fara Cron Job
PHP - MySQL - XML Primul mesaj
Buna,Ultimul mesaj
Se poate programa sa trimita un email automat din php fara ca pagina sa fie accesata sau fara sa fie setat un cron in Cpanel ?
Daca ar fi...
Salut,
Ca sa rulezi un script php trebuie sa accesezi acel fisier printr-o aplicatie precum o pagina in browser sau Cron Job pe server.
Din cate...