รับ cron เพื่อส่งอีเมลในรูปแบบ html


10

ฉันมีโปรแกรมสถิติที่ทำงานบนไฟล์บันทึกผ่าน cron โปรแกรมสถิติสามารถส่งออก HTML

ตอนนี้ฉันพึ่งพากลไก MAIL_TO ใน crontab

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

ปัญหาคือฉันต้องการให้ส่งอีเมลเพื่อแสดงเป็น HTML ไม่ใช่ข้อความธรรมดา

Cron วางส่วนหัวต่อไปนี้ในอีเมล:

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

ความคิดใด ๆ ที่ฉันจะเปลี่ยนเป็น:

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

คำตอบ:


2

ฉันไม่คิดว่าคุณจะทำได้ วิธีแก้ไขอาจเป็นการไพพ์เอาต์พุตไปยัง sendmail หรือเมลซึ่งช่วยให้คุณควบคุมชนิดเนื้อหาและส่วนหัวอื่น ๆ ได้มากขึ้น


ขอบคุณ ฉันให้ไปส่งทางไปรษณีย์และฉันมีความสุขกับสิ่งที่ฉันเห็น ดีที่สุด!
Mark L

CONTENT_TYPEแก้ปัญหาตัวแปรที่กล่าวถึงในคำตอบอื่นดูเหมือนว่าจะทำงานอย่างน้อยในบางรุ่น cron
Peter Eisentraut

22

ฉันใส่CONTENT_TYPE="text/plain; charset=utf-8"ใน/etc/crontabเพื่อรับจดหมายของฉันใน UTF-8

ใส่CONTENT_TYPE="text/html; charset=utf-8"ใน/etc/crontabการส่งจดหมายในรูปแบบ HTML

คุณสามารถเพิ่มมันในไฟล์ที่ระบุได้หากมีไดเรกทอรี/etc/cron.d/อยู่ ในกรณีนี้ข้อมูลจำเพาะถูกกำหนดไว้สำหรับงานที่ร้องขอเท่านั้น


1
มันยอดเยี่ยมมาก ... สามารถยืนยันได้บน Ubuntu 14.04.2
billynoah

@billynoah ใช่นี่ควรเป็นคำตอบที่ยอมรับได้ ทำงานบน archlinux, cronie 1.5.1-1
g33kz0r

ทำงานกับ centos
zzapper

ทำงานใน Ubuntu 16
Marco Marsala

ดูเหมือนจะไม่ทำงานบน macOS Mojave
Burhan Ali

-1

ใช่คุณสามารถ.

<?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 &'); ?>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.