i did not include the entire class, only the part concerning the filename. it does work when the filename includes the entire path. here is the whole class. this works, but the attached file is named .._leads_nameoffile.csv.
i have found a work around, but am still curious as to why two seemingly equivalent pieces of code are not. this class works great, however.
$filename="../leads/$weekago-$today.csv";
$fp=fopen($filename,"w");
$content="APPLICATION ID,LOAN TYPE,DATE,LAST NAME,FIRST NAME,ESTIMATED VALUE OF HOME,LOAN AMOUNT DESIRED,CURRENT MONTHLY PAYMENT,CREDIT HISTORY,EMAIL,HOME PHONE,WORK PHONE,ADDRESS,CITY,STATE,ZIP\n";
for ($i=0;$i<count($applicationid);$i++){
$content.= "$applicationid[$i],$loanpurpose[$i],$date[$i],$lname[$i],$fname[$i],$estimatedvalue[$i],$desiredamount[$i],$monthlypayment[$i],$credithistory[$i],$email[$i],$homephone[$i],$workphone[$i],$address[$i],$city[$i],$state[$i],$zip[$i]\n";
}
fwrite($fp,$content);
fclose($fp);
//pause to give system time to write file
sleep(15);
//attach file in email and send
$content_type = "plain/text";
@$fd = fopen($filename, "r");
@$data = fread($fd, filesize($filename));
@fclose($fd);
$mail = new MailAttach;
$mail->from = "e-loan-finder.com";
$mail->to = "emailgoeshere";
$mail->subject = "Weekly Leads";
$mail->body = "This is the body of the email.";
$mail->headers = "Reply-To: replyaddress";
$mail->add_attachment($data, $filename, $content_type);
$enviado = $mail->send();
class MailAttach
{
var $parts;
var $to;
var $from;
var $headers;
var $subject;
var $body;
function MailAttach() {
$this->parts = array();
$this->to = "";
$this->from = "";
$this->subject = "";
$this->body = "";
$this->headers = "";
}
function add_attachment($message, $name = "", $ctype = "application/octet-stream") {
$this->parts[] = array (
"ctype" => $ctype,
"message" => $message,
"encode" => $encode,
"name" => $name
);
}
function build_message($part) {
$message = $part[ "message"];
$message = chunk_split(base64_encode($message));
$encoding = "base64";
return "Content-Type: ".$part[ "ctype"].
($part[ "name"]? "; name = \"".$part[ "name"].
"\"" : "").
"\nContent-Transfer-Encoding: $encoding\n\n$message\n";
}
function build_multipart() {
$boundary = "b".md5(uniqid(time()));
$multipart =
"Content-Type: multipart/mixed; boundary = $boundary\n\nThis is a MIME encoded message.\n\n--$boundary";
for($i = sizeof($this->parts)-1; $i >= 0; $i--)
{
$multipart .= "\n".$this->build_message($this->parts[$i]).
"--$boundary";
}
return $multipart.= "--\n";
}
function get_mail($complete = true) {
$mime = "";
if (!empty($this->from))
$mime .= "From: ".$this->from. "\n";
if (!empty($this->headers))
$mime .= $this->headers. "\n";
if ($complete) {
if (!empty($this->to)) {
$mime .= "To: $this->to\n";
}
if (!empty($this->subject)) {
$mime .= "Subject: $this->subject\n";
}
}
if (!empty($this->body))
$this->add_attachment($this->body, "", "text/plain");
$mime .= "MIME-Version: 1.0\n".$this->build_multipart();
return $mime;
}
function send() {
$mime = $this->get_mail(false);
if (mail($this->to, $this->subject, "", $mime)) {
return true;
}else{
return false;
}
}
};