Re: Attachment
| From: | BoNzO | Date: | Thu, 09 Aug 2001 12:51:46 +0000 |
| Subject: | Re: Attachment | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-11181@lists.php.net to get a copy of this message | ||
First of all.
Take a look at MIME tutorial @ http://www.zend.com
its great.. read all 3.
i wrote a perl script after that tutorial..
it attach a .log file..
take a look im 100% sure you can port it to php using mail() function
just build up $header and insert into the function.
---------------------------------------------------------------------
#!/usr/bin/perl
use strict;
use MIME::Base64;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time + 0 *
24 * 60 * 60);
$year += 1900;
$mon++;
if ($mday < 10) {
$mday = "0$mday";
}
if ($mon < 10) {
$mon = "0$mon";
}
my $baseDir = "/home/mysqlBackup";
my $baseFileName = "mysql-$year-$mon-$mday";
# mysql-yyyy-mm-dd.tar(.gz)
my $backupFile = "$baseFileName.tar";
my $backupFileType = "application/octet-stream";
# mysql-yyyy-mm-dd.log
my $logFile = "$baseFileName.log";
my $logFileType ="text/plain";
# Where mysql database are located.
my $DBFileDir = "/var/lib/mysql";
&doBackup("$baseDir/$logFile", "$baseDir/$backupFile",
"$DBFileDir");
my $encBackupFile = &_encodeFile("$baseDir/$backupFile.gz");
my $encLogFile = &_encodeFile("$baseDir/$logFile");
&sendMail(
"Backup completed ($year-$mon-$mday)"
, "admin\@sineleven.nu"
, "$logFile"
, "$logFileType"
, "$encLogFile"
);
sub sendMail {
my ($subject, $to, $File, $FileType, $Base64) = @_;
my $priority = "normal";
my $mailprog = "/usr/local/bin/sendmail";
my $mime_text = "This part of the E-mail should never be seen. If you ar
e reading this, consider upgrading your e-mail client to a MIME-compatible clien
t.\n";
if ($to ne "") {
my $status = open (MAIL,"|$mailprog -t");
if ($status) {
print MAIL "To: $to\n";
print MAIL "Subject: $subject\n";
print MAIL "Importance: $priority\n";
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-Type: multipart/mixed;\n\tboundary=\
"ZEND-12345\";";
print MAIL "$mime_text\n";
print MAIL "--ZEND-12345\n";
print MAIL "Content-Type: text/plain;\n\n";
print MAIL "Backup on sineleven.nu completed.\n\nFiles a
re located at /home/mysqlBackup\n\nLook at attached logfile for info\n";
print MAIL "--ZEND-12345\n";
print MAIL "Content-Type: $FileType;\n\tname=\"$File\"\n
";
print MAIL "Content-Transfer-Encoding: base64\n";
print MAIL "Content-Disposition: attachment\n\tfilename=
\"$File\"\n\n";
print MAIL "$Base64\n";
print MAIL "--ZEND-12345--\n";
close(MAIL);
}
}
}
sub doBackup {
my ($logFile, $backupFile, $backupDir) = @_;
tar cvvf $backupFile $backupDir > $logFile;
gzip $backupFile;
chmod 400 $logFile $backupFile.gz;
}
sub _encodeFile {
my ($file) = @_;
my ($buf, $encoded);
open(FILE, "$file") or die "$!";
while (read(FILE, $buf, 60*57)) {
$encoded.= encode_base64($buf);
}
return $encoded;
}
/Mattias aka BoNzO
http://bonzo.sineleven.nu