Skip to content

Instantly share code, notes, and snippets.

@Drarok
Created March 27, 2012 08:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Drarok/59d9f9bae604cb4d012c to your computer and use it in GitHub Desktop.
Save Drarok/59d9f9bae604cb4d012c to your computer and use it in GitHub Desktop.
Patch up sendmail to force emails to go to you (useful in development).
echo 'Enter the path to sendmail [/usr/sbin/sendmail]: ';
if (! (bool) $sendmail = trim(fgets(STDIN))) {
$sendmail = '/usr/sbin/sendmail';
}
if (! is_writable($sendmail)) {
echo 'Cannot write to ', $sendmail, ', please run with sudo.', PHP_EOL;
exit(1);
}
echo 'Enter your email address, and press enter: ';
if (! (bool) $developerEmail = trim(fgets(STDIN))) {
echo 'You must specify an email address.', PHP_EOL;
exit(1);
}
$sendmailReal = $sendmail . '_real';
if (file_exists($sendmailReal)) {
echo $sendmailReal, ' already exists!', PHP_EOL;
exit(1);
}
// Move sendmail out of the way.
if (! rename($sendmail, $sendmailReal)) {
echo 'Failed to rename sendmail!', PHP_EOL;
exit(1);
}
$sendmailScript = <<<EOT
#!/bin/bash
formail -R cc X-original-cc \
-R to X-original-to \
-R bcc X-original-bcc \
-f -A"To: ${developerEmail}" \
| ${sendmailReal} -t -i $@
EOT;
if (! file_put_contents($sendmail, $sendmailScript)) {
echo 'Failed to write script!', PHP_EOL;
exit(1);
}
if (! chmod($sendmail, 0755)) {
echo 'Failed to make the script executable!', PHP_EOL;
exit(1);
}
echo 'All done!', PHP_EOL;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment