I'm using SwiftMailer 3.0.5-PHP4 on a PHP 4.4.4 server.
What I'm trying to do is send batch emails using the stock form provided by the docs. I ultimately need this form to email roughly 200 subscribers in my database, and hope to use Dreamweaver's behaviors to do that. But currently I only have (1)one email address under recipients.
I've also used the script provided in the docs with my own information where required.
Now, when I fill out the form and click submit I get send to a blank page (my handler script) and that's it. No redirection to a success page or a failure page. Also no email has been sent. I've tried numerous tweaks and debugging but still cannot find the problem. I'm two weeks into this now and totally out of time. My client needs this running next week. I'll post all my code below. Any help would be most appreciated!
Thanks,
Michael Smith
**********Form Page Code*********
Code: Select all
<?php
//Display an error if something went wrong
if (!empty($_GET["error"]))
{
switch ($_GET["error"])
{
case "not_enough_info": ?>
<strong style="color: red;">You need to complete all fields marked *<strong><?php
break;
case "invalid_email": ?>
<strong style="color: red;">Please provide a valid email address</strong><?php
break;
case "upload_failed": ?>
<strong style="color: red;">The file you uploaded failed to attach, this could be a temporary problem.
Please try later.</strong><?php
break;
case "sending_failed": ?>
<strong style="color: red;">Temporary problem, please try later.</strong><?php
break;
}
}
?>
<form action="handle_newsletter.php" method="post" enctype="multipart/form-data">
<table>
<tr>
<td class="label">Sender Name</td>
<td><input type="text" name="sender_name" value="" /></td>
</tr>
<tr>
<td class="label">Sender E-mail address</td>
<td><input type="text" name="sender_email" value="info@calb.org" /></td>
</tr>
<tr>
<td class="label">Title</td>
<td><input type="text" name="comment_title" value="" /></td>
</tr>
<tr>
<td class="label">Attachment (optional)</td>
<td><input type="file" name="attachment" /></td>
</tr>
<tr>
<td colspan="2">Body of Newsletter<br />
<textarea name="comment_body" rows="10" cols="70"></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" value="Submit" /></td>
</tr>
</table>
</form>*******handle_newsletter.php AKA my processing script*********
Code: Select all
<?php
//Check if the required fields were sent
// Redirect back to the form if not
if (empty($_POST["sender_name"]) || empty($_POST["sender_email"])
|| empty($_POST["comment_title"]) || empty($_POST["comment_body"]))
{
//redirect back to form
header("Location: http://www.calb.org/addnewsletter.php"); //This should really be an absolute URL if you know it
exit();
}
//Copy into global variables
$name = $_POST["sender_name"];
$email = $_POST["sender_email"];
$title = $_POST["comment_title"];
$body = $_POST["comment_body"];
//Validate the email address using a regex (I suggest you use a better one than this!!)
if (!preg_match("/[a-zA-Z0-9_\\.-]+@[a-zA-Z0-9_\\.-]+/", $email))
{
header("Location: http://www.calb.org/addnewsletter.php?e ... alid_email");
exit();
}
//Check if an attachment was uploaded
$file_path = false;
$file_name = false;
$file_type = false;
if (!empty($_FILES["attachment"]["tmp_name"]))
{
if ($_FILES["attachment"]["error"])
{
//Redirect if the upload has failed
header("Location: http://www.calb.org/addnewsletter.php?e ... oad_failed");
exit();
}
$file_path = $_FILES["attachment"]["tmp_name"];
$file_name = $_FILES["attachment"]["name"];
$file_type = $_FILES["attachment"]["type"];
}
//Everything looks ok, we can start Swift
require_once "swift/Swift.php";
require_once "swift/Swift/Connection/SMTP.php";
//Enable disk caching if we can
if (is_writable("/tmp"))
{
Swift_CacheFactory::setClassName("Swift_Cache_Disk");
Swift_Cache_Disk::setSavePath("/tmp");
}
//Create a Swift instance
$swift =& new Swift(new Swift_Connection_SMTP("smtp.calb.org"));
//Create the sender from the details we've been given
$sender =& new Swift_Address($email, $name);
//Create the message to send
$message =& new Swift_Message("New comment: " . $title);
$message->attach(new Swift_Message_Part($body));
//If an attachment was sent, attach it
if ($file_path && $file_name && $file_type)
{
$message->attach(
new Swift_Message_Attachment(new Swift_File($file_path), $file_name, $file_type));
}
//Try sending the email
$sent = $swift->send($message, "michael@legiondata.org", $sender);
//Disconnect from SMTP, we're done
$swift->disconnect();
if ($sent)
{
header("Location: http://www.calb.org/success.php");
exit();
}
else
{
header("Location:http://www.calb.org/addnewsletter.php?error=sending_failed");
exit();
}d11wtq | Please add
Code: Select all
[/ php] tags around your PHP code when posting in the forum.[/color]