dropfaith Posted January 5, 2010 Share Posted January 5, 2010 trying to get this working any help right now its connecting properly but not sending anything or telling me why its just resetting the form and doing nothing more <? If ($action=="mysql"){ #Grab email addresses from MySQL include "conf.php"; if (!$sqlhost || !$sqllogin || !$sqlpass || !$sqldb || !$sqlquery){ print "Please configure mysql.info.php with your MySQL information. All settings in this config file are required."; exit; } $db = mysql_connect($sqlhost, $sqllogin, $sqlpass) or die("Connection to MySQL Failed."); mysql_select_db($sqldb, $db) or die("Could not select database $sqldb"); $result = mysql_query($sqlquery) or die("Query Failed: $sqlquery"); $numrows = mysql_num_rows($result); for($x=0; $x<$numrows; $x++){ $result_row = mysql_fetch_row($result); $oneemail = $result_row[0]; $emaillist .= $oneemail."\n"; } } if ($action=="send"){ $message = urlencode($message); $message = ereg_replace("%5C%22", "%22", $message); $message = urldecode($message); $message = stripslashes($message); $subject = stripslashes($subject); } ?> <form name="form1" method="post" action="" enctype="multipart/form-data"> <br> <table width="100%" border="0"> <tr> <td width="10%"> <div align="right"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Your Email:</font></div> </td> <td width="18%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="from" value="<? print $from; ?>" size="30"> </font></td> <td width="31%"> <div align="right"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Your Name:</font></div> </td> <td width="41%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="realname" value="<? print $realname; ?>" size="30"> </font></td> </tr> <tr> <td width="10%"> <div align="right"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Reply-To:</font></div> </td> <td width="18%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="replyto" value="<? print $replyto; ?>" size="30"> </font></td> <td width="31%"> <div align="right"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Attach File:</font></div> </td> <td width="41%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="file" name="file" size="30"> </font></td> </tr> <tr> <td width="10%"> <div align="right"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Subject:</font></div> </td> <td colspan="3"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="subject" value="<? print $subject; ?>" size="90"> </font></td> </tr> <tr valign="top"> <td colspan="3"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <textarea name="message" cols="60" rows="10"><? print $message; ?></textarea> <br> <input type="radio" name="contenttype" value="plain" checked> Plain <input type="radio" name="contenttype" value="html"> HTML <input type="hidden" name="action" value="send"> <input type="submit" value="Send eMails"> </font></td> <td width="41%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <textarea name="emaillist" cols="30" rows="10"><? print $emaillist; ?></textarea> </font></td> </tr> </table> </form> <? if ($action=="send"){ if (!$from && !$subject && !$message && !$emaillist){ print "Please complete all fields before sending your message."; exit; } $allemails = split("\n", $emaillist); $numemails = count($allemails); #Open the file attachment if any, and base64_encode it for email transport If ($file_name){ @copy($file, "./$file_name") or die("The file you are trying to upload couldn't be copied to the server"); $content = fread(fopen($file,"r"),filesize($file)); $content = chunk_split(base64_encode($content)); $uid = strtoupper(md5(uniqid(time()))); $name = basename($file); } for($x=0; $x<$numemails; $x++){ $to = $allemails[$x]; if ($to){ $to = ereg_replace(" ", "", $to); $message = ereg_replace("&email&", $to, $message); $subject = ereg_replace("&email&", $to, $subject); print "Sending mail to $to......."; flush(); $header = "From: $realname <$from>\r\nReply-To: $replyto\r\n"; $header .= "MIME-Version: 1.0\r\n"; If ($file_name) $header .= "Content-Type: multipart/mixed; boundary=$uid\r\n"; If ($file_name) $header .= "--$uid\r\n"; $header .= "Content-Type: text/$contenttype\r\n"; $header .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; $header .= "$message\r\n"; If ($file_name) $header .= "--$uid\r\n"; If ($file_name) $header .= "Content-Type: $file_type; name=\"$file_name\"\r\n"; If ($file_name) $header .= "Content-Transfer-Encoding: base64\r\n"; If ($file_name) $header .= "Content-Disposition: attachment; filename=\"$file_name\"\r\n\r\n"; If ($file_name) $header .= "$content\r\n"; If ($file_name) $header .= "--$uid--"; mail($to, $subject, "", $header); print "ok<br>"; flush(); } } } ?> Link to comment https://forums.phpfreaks.com/topic/187253-mass-emailer-newsletters/ Share on other sites More sharing options...
RaythMistwalker Posted January 5, 2010 Share Posted January 5, 2010 couple of things from reading through: your form action leads no where? I've never seen this before so dunno how this works for you. The variable $action is never once set. but i do see you have a hidden variable called action which = send so you should have $action=$_POST['action']; Also, you don't have action point to mysql at any point so technically it won't even try connect to the database. Link to comment https://forums.phpfreaks.com/topic/187253-mass-emailer-newsletters/#findComment-988844 Share on other sites More sharing options...
dropfaith Posted January 5, 2010 Author Share Posted January 5, 2010 it was thru a second file doing some stuff ive edited it to show what the other does http://dropfaithproductions.com/Astaroth/eMailer.php you see the bottom sending email thing at all times for some reason but its showing the amount of records in my test database <style> body {background:#000;color:#fff;} fieldset {width:650px;border:1px solid #ccc;} legend {text-align:right;color:#f00} </style> <?php If ($action=$_POST['action']){ #Grab email addresses from MySQL // database configuration $sqlhost = "localhost"; $sqllogin = "***"; $sqlpass = "***"; $sqldb = "***"; $db = mysql_connect($sqlhost, $sqllogin, $sqlpass) or die("Connection to MySQL Failed."); mysql_select_db($sqldb, $db) or die("Could not select database $sqldb"); $sqlquery = "SELECT * FROM emaillist"; $result = mysql_query($sqlquery) or die ("Query failed: " . mysql_error() . " Actual query: " . $query); $numrows = mysql_num_rows($result); for($x=0; $x<$numrows; $x++){ $result_row = mysql_fetch_row($result); $oneemail = $result_row[0]; $emaillist .= $oneemail."\n"; } } if ($action=$_POST['action']){ $message = urlencode($message); $message = ereg_replace("%5C%22", "%22", $message); $message = urldecode($message); $message = stripslashes($message); $subject = stripslashes($subject); } ?> <fieldset> <legend>Email Form</legend> <form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data"> <table width="60%" border="0"> <tr> <td width="10%"> <div align="left"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Your Email:</font></div> </td> <td width="18%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="from" value="" size="30"> </font></td> </tr><tr> <td width="10%"> <div align="left"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Your Name:</font></div> </td> <td width="41%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="realname" value="" size="30"> </font></td> </tr> <tr> <td width="10%"> <div align="left"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Reply-To:</font></div> </td> <td width="18%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="replyto" value="" size="30"> </font></td> </tr> <tr> <td width="31%"> <div align="left"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Attach File:</font></div> </td> <td width="41%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="file" name="file" size="30"> </font></td> </tr> <tr> <td width="10%"> <div align="left"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Subject:</font></div> </td> <td colspan="3"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="subject" value="" size="30"> </font></td> </tr> <tr valign="top"> <td colspan="3"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <textarea name="message" cols="40" rows="10"><? print $message; ?></textarea> <br> <input type="radio" name="contenttype" value="plain" checked> Plain <input type="radio" name="contenttype" value="html"> HTML <input type="hidden" name="action" value="send"> <input type="submit" value="Send eMails"> </font></td> </tr> </table> </form> </fieldset> <?php if ($action=$_POST['action']){ if (!$from && !$subject && !$message && !$emaillist){ print "Please complete all fields before sending your message."; exit; } $allemails = split("\n", $emaillist); $numemails = count($allemails); #Open the file attachment if any, and base64_encode it for email transport If ($file_name){ @copy($file, "./$file_name") or die("The file you are trying to upload couldn't be copied to the server"); $content = fread(fopen($file,"r"),filesize($file)); $content = chunk_split(base64_encode($content)); $uid = strtoupper(md5(uniqid(time()))); $name = basename($file); } for($x=0; $x<$numemails; $x++){ $to = $allemails[$x]; if ($to){ $to = ereg_replace(" ", "", $to); $message = ereg_replace("&email&", $to, $message); $subject = ereg_replace("&email&", $to, $subject); print "Sending mail to $to......."; flush(); $header = "From: $realname <$from>\r\nReply-To: $replyto\r\n"; $header .= "MIME-Version: 1.0\r\n"; If ($file_name) $header .= "Content-Type: multipart/mixed; boundary=$uid\r\n"; If ($file_name) $header .= "--$uid\r\n"; $header .= "Content-Type: text/$contenttype\r\n"; $header .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; $header .= "$message\r\n"; If ($file_name) $header .= "--$uid\r\n"; If ($file_name) $header .= "Content-Type: $file_type; name=\"$file_name\"\r\n"; If ($file_name) $header .= "Content-Transfer-Encoding: base64\r\n"; If ($file_name) $header .= "Content-Disposition: attachment; filename=\"$file_name\"\r\n\r\n"; If ($file_name) $header .= "$content\r\n"; If ($file_name) $header .= "--$uid--"; mail($to, $subject, "", $header); print "ok<br>"; flush(); } } } echo $numemails; ?> Link to comment https://forums.phpfreaks.com/topic/187253-mass-emailer-newsletters/#findComment-988901 Share on other sites More sharing options...
RaythMistwalker Posted January 5, 2010 Share Posted January 5, 2010 your still not declaring what $action is so you would have to do: $action=$_POST['action'] Also you can't use if ($action=$_POST['action']){ As this will just make it always valid. Hence you have to have the parts in your code as if ($action == 'send'){ Link to comment https://forums.phpfreaks.com/topic/187253-mass-emailer-newsletters/#findComment-988905 Share on other sites More sharing options...
dropfaith Posted January 5, 2010 Author Share Posted January 5, 2010 changed still the same tho guh maybe if been awake too long to fiqure this out but its the final step of this much larger project im doing sigh Link to comment https://forums.phpfreaks.com/topic/187253-mass-emailer-newsletters/#findComment-988909 Share on other sites More sharing options...
dropfaith Posted January 5, 2010 Author Share Posted January 5, 2010 <style> body {background:#000;color:#fff;} fieldset {width:650px;border:1px solid #ccc;} legend {text-align:right;color:#f00} </style> <?php #Grab email addresses from MySQL // database configuration $sqlhost = "localhost"; $sqllogin = ""; $sqlpass = ""; $sqldb = ""; $db = mysql_connect($sqlhost, $sqllogin, $sqlpass) or die("Connection to MySQL Failed."); mysql_select_db($sqldb, $db) or die("Could not select database $sqldb"); $sqlquery = "SELECT * FROM emaillist"; $result = mysql_query($sqlquery) or die ("Query failed: " . mysql_error() . " Actual query: " . $query); $numrows = mysql_num_rows($result); for($x=0; $x<$numrows; $x++){ $result_row = mysql_fetch_row($result); $oneemail = $result_row[0]; $emaillist .= $oneemail."\n"; } if ($action == 'send'){ $message = urlencode($message); $message = ereg_replace("%5C%22", "%22", $message); $message = urldecode($message); $message = stripslashes($message); $subject = stripslashes($subject); } ?> <fieldset> <legend>Email Form</legend> <form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data"> <table width="60%" border="0"> <tr> <td width="10%"> <div align="left"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Your Email:</font></div> </td> <td width="18%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="from" value="" size="30"> </font></td> </tr><tr> <td width="10%"> <div align="left"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Your Name:</font></div> </td> <td width="41%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="realname" value="" size="30"> </font></td> </tr> <tr> <td width="10%"> <div align="left"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Reply-To:</font></div> </td> <td width="18%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="replyto" value="" size="30"> </font></td> </tr> <tr> <td width="31%"> <div align="left"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Attach File:</font></div> </td> <td width="41%"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="file" name="file" size="30"> </font></td> </tr> <tr> <td width="10%"> <div align="left"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif">Subject:</font></div> </td> <td colspan="3"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="subject" value="" size="30"> </font></td> </tr> <tr valign="top"> <td colspan="3"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"> <textarea name="message" cols="40" rows="10"></textarea> <br> <input type="radio" name="contenttype" value="plain" checked> Plain <input type="radio" name="contenttype" value="html"> HTML <input type="hidden" name="action" value="send"> <input type="submit" value="Send eMails"> </font></td> </tr> </table> </form> </fieldset> <?php $action=$_POST['action']; if ($action == 'send'){ if (!$from && !$subject && !$message && !$emaillist){ print "Please complete all fields before sending your message."; exit; } $allemails = split("\n", $emaillist); $numemails = count($allemails); #Open the file attachment if any, and base64_encode it for email transport If ($file_name){ @copy($file, "./$file_name") or die("The file you are trying to upload couldn't be copied to the server"); $content = fread(fopen($file,"r"),filesize($file)); $content = chunk_split(base64_encode($content)); $uid = strtoupper(md5(uniqid(time()))); $name = basename($file); } for($x=0; $x<$numemails; $x++){ $to = $allemails[$x]; if ($to){ $to = ereg_replace(" ", "", $to); $message = ereg_replace("&email&", $to, $message); $subject = ereg_replace("&email&", $to, $subject); print "Sending mail to $to......."; flush(); $header = "From: $realname <$from>\r\nReply-To: $replyto\r\n"; $header .= "MIME-Version: 1.0\r\n"; If ($file_name) $header .= "Content-Type: multipart/mixed; boundary=$uid\r\n"; If ($file_name) $header .= "--$uid\r\n"; $header .= "Content-Type: text/$contenttype\r\n"; $header .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; $header .= "$message\r\n"; If ($file_name) $header .= "--$uid\r\n"; If ($file_name) $header .= "Content-Type: $file_type; name=\"$file_name\"\r\n"; If ($file_name) $header .= "Content-Transfer-Encoding: base64\r\n"; If ($file_name) $header .= "Content-Disposition: attachment; filename=\"$file_name\"\r\n\r\n"; If ($file_name) $header .= "$content\r\n"; If ($file_name) $header .= "--$uid--"; mail($to, $subject, "", $header); print "ok<br>"; flush(); } } } ?> Link to comment https://forums.phpfreaks.com/topic/187253-mass-emailer-newsletters/#findComment-988926 Share on other sites More sharing options...
dropfaith Posted January 5, 2010 Author Share Posted January 5, 2010 update the script is functional its now sending emails to the server but the server is marking them as spam and refusing to send them out (its a test server any idea how to avoid this issue) Link to comment https://forums.phpfreaks.com/topic/187253-mass-emailer-newsletters/#findComment-988998 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.