Nhận cron để gửi email định dạng html


10

Tôi có một chương trình thống kê chạy trên các tệp nhật ký thông qua cron. Chương trình thống kê có thể xuất HTML.

Ngay bây giờ tôi dựa vào cơ chế MAIL_TO trong crontab.

MAILTO=my@email.addr
55 23 * * * /usr/bin/htmlstats

Vấn đề là tôi muốn email được gửi hiển thị dưới dạng HTML chứ không phải là văn bản thuần túy.

Cron đặt tiêu đề sau trong email:

Content-Type: text/plain; charset="UTF-8"

Bất cứ ý tưởng nào tôi sẽ thay đổi điều này thành:

Content-Type: text/html; charset="UTF-8"

Câu trả lời:


3

Tôi không nghĩ bạn có thể. Một giải pháp có thể là chuyển đầu ra sang sendmail hoặc mail, điều này cho phép bạn kiểm soát nhiều hơn đối với loại nội dung và các tiêu đề khác.


Cảm ơn. Tôi đã đưa đường ống để gửi thư và tôi hài lòng với những gì tôi thấy. Tất cả là tốt nhất!
Đánh dấu L

Các CONTENT_TYPEgiải pháp biến đề cập trong câu trả lời khác dường như làm việc ít nhất là trong một số phiên bản cron.
Peter Eisentraut

22

Tôi đặt thư CONTENT_TYPE="text/plain; charset=utf-8"vào /etc/crontabđể gửi thư trong UTF-8.

Đưa CONTENT_TYPE="text/html; charset=utf-8"vào /etc/crontabđể gửi thư trong HTML.

Bạn có thể thêm nó trong tập tin cụ thể nếu thư mục /etc/cron.d/tồn tại. Trong trường hợp này, đặc tả chỉ được xác định cho các tác vụ được yêu cầu.


1
Điều này thật tuyệt vời ... có thể xác nhận nó hoạt động trên Ubuntu 14.04.2.
billynoah

@billynoah vâng, đây sẽ là câu trả lời được chấp nhận. Hoạt động trên archlinux, cronie 1.5.1-1
g33kz0r

làm việc trên centos
zzapper 7/12/2016

Hoạt động trong Ubuntu 16
Marco Marsala

Không xuất hiện để hoạt động trên macOS Mojave.
Burhan Ali

-1

CÓ, bạn có thể.

<?php exec('(  echo "test<br>créer un mail"| mail -s "SUBJECT" -a "Content-Type: text/html; charset=UTF-8" '.$receiver.' -- -f '.$sender.' ) &> /dev/null &'); ?>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.