Skip to content

Instantly share code, notes, and snippets.

@atomjoy
Last active June 14, 2025 16:57
Show Gist options
  • Save atomjoy/054ecd79f732ff00ff2821b3dbc12822 to your computer and use it in GitHub Desktop.
Save atomjoy/054ecd79f732ff00ff2821b3dbc12822 to your computer and use it in GitHub Desktop.
Wysyłanie wiadomości email z cron

Wysyłanie wiadomości email z cron

Połącz się przez ssh.

Plik mail.php

Plik php wysyłający wiadomość email.

<?php
$to      = '[email protected]';
$subject = 'Cześć to Ja';
$message = 'Czas leci ... ' . time();
$headers = 'From: [email protected]' . "\r\n" .
    'Reply-To: [email protected]' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

$ok = mail($to, $subject, $message, $headers);

echo "Sent " . time();

Plik send.sh

Plik uruchamiany przez crontab.

#!/bin/bash

php -f /home/username/cron/mail.php

Plik log.sh

#!/bin/bash

cat /home/username/tmp/out

Uprawnienia plików

chmod 700 /home/username/cron/mail.php
chmod 700 /home/username/cron/send.sh
chmod 700 /home/username/cron/log.sh

Katalog na logi

mkdir /home/username/tmp

Uruchom crontab -e

# Add with:
# crontab -e

SHELL=/usr/local/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/home/username/bin:/usr/home/username/cron

# every 1 min
# * * * * *        /bin/bash /home/username/cron/send.sh >> /home/username/tmp/out 2>&1

# every 5 min
*/5 * * * *        /bin/bash /home/username/cron/send.sh >> /home/username/tmp/out 2>&1

Laravel cron przykłady

# Queue
* * * * * /usr/bin/php /path-to-your-project/artisan queue:work --max-time=60 > /dev/null

# Jobs
* * * * * cd /path-to-your-project && /usr/bin/php artisan schedule:run >> /dev/null 2>&1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment