Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I am using "mail" to send e-mails from command line on my OSX 10.6

the "< filename" however doesn't work quite well, as I don't really see the file as "attachment" on any standard e-mail client. Is there any solution for this with the standard tools that come pre-installed with OSX 10.6?

share|improve this question
add comment

2 Answers

up vote 1 down vote accepted

The quick and dirty way to send an attachment is to uuencode the file and mail it.

uuencode report.pdf report.pdf | mail -s "Here is the report" bossman@company.com

If you want to do it easily and build a proper MIME encoded message, you could install mutt, and use the -a flag to attach your message.

If you don't want to install anything else, you could build your own MIME message by hand, or use the perl MIME::Entity module to help you:

#!/usr/bin/perl
use MIME::Entity;

$message = MIME::Entity->build(
  Type    => "multipart/mixed",
  From    => "me\@company.com",
  To      => "bossman\@company.com",
  Subject => "Report attached" );

$message->attach(Data=>"Here is the report, as promised.");

$message->attach(
  Path     => "./report.pdf",
  Type     => "application/pdf",
  Encoding => "base64");

open MAIL, "| /usr/sbin/sendmail -t -oi";
$message->print(\*MAIL);
close MAIL;
share|improve this answer
add comment

The easiest solution to your current situation is to use uuencode to encode the file format and mail it. Try this line:

uuencode /your/file.zip file.zip | mail -s subject recipient@mail

Another possibility is to use perl/python scripts to do that job (maybe better), but the above solution just works(tm)

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.