I am trying to write a little program where once a file is edited it takes that file and attaches it to an email and sends it. For the life of me I cant get it to actually send the email. Can anyone spot my miss or error? I also cant figure out how to put in the Reply to portion, not sure if that even has anything to do with it. I have attached the emailing portion of the code, everything else is working fine but just no email being sent and nothing in the logs to help me. The server it is being tested on also is working fine using sendmail in other programs. Thanks for any help on this.
<?php
//core/email_cfg.php
function mail_attachment($git_messages, $file)
{
$filename = basename($file);
//define the receiver of the email
$to = 'whoever@domain.com';
//define the subject of the email
$subject = 'Change to Config File '.$filename;
//message
$username = isset($_SESSION["username"]) ? $_SESSION["username"] : 'Unknown User';
$message = 'Notification: The config file named '.$filename. ' was changed by USER='.$username.', GIT Results: '. $git_messages;
//from:
$from = "SomeUserEmail@domain.com";
//how do we fit this in?
//\r\nReply-To: no_reply@domain.com\r\n
// $file should include path and filename
$file_size = filesize($file);
$content = chunk_split(base64_encode(file_get_contents($file)));
$uid = md5(uniqid(time()));
$from = str_replace(array("\r", "\n"), '', $from); // to prevent email injection
$header = "From: ".$from."\r\n"
."MIME-Version: 1.0\r\n"
."Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"
."This is a multi-part message in MIME format.\r\n"
."--".$uid."\r\n"
."Content-type:text/plain; charset=iso-8859-1\r\n"
."Content-Transfer-Encoding: 7bit\r\n\r\n"
.$message."\r\n\r\n"
."--".$uid."\r\n"
."Content-Type: text/html; charset=iso-8859-1\r\n"
."Content-Transfer-Encoding: 7bit\r\n\r\n"
.$message."\r\n\r\n"
."--".$uid."\r\n"
."Content-Type: text/plain; name=\"".$filename."\"\r\n"
."Content-Transfer-Encoding: base64\r\n"
."Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"
.$content."\r\n\r\n"
."--".$uid."--";
return mail($to, $subject, "", $header);
}
<snip>
try
{
//save the file changes
editor::save_file($full_path, $file_name, $file_input);
//uncomment this section to run the repo code
//update the repo
$repo = Git::open('/some/directory');
$git_add_msg = $repo->add('.');
$git_commit_msg = $repo->commit('** Commit Message **');
$git_push_msg = $repo->push('origin', 'automated');
//die("GIT REPO PUSH: add = $git_add_msg <br/> commit = $git_commit_msg <br/> push = $git_push_msg");
$git_messages = " Add = $git_add_msg, Commit = $git_commit_msg, Push = $git_push_msg";
//email the changes
mail_attachment($git_messages, $attachment);
}
catch(Exception $e)
{
//debug
if(true)
echo "Save_file() Exception: " . $e->getMessage();
}