ฉันใช้อัลไพน์เป็นผู้อ่านจดหมายหลักของฉัน ในขณะที่ฉันใช้เวลาเกือบทั้งวันในเทอร์มินัลหรือ Emacs มันคงจะดีถ้าได้รับการแจ้งเตือนเกี่ยวกับเมลใหม่โดยใช้ alert-bin มีวิธีใดบ้างที่ฉันสามารถกำหนดค่าอัลไพน์ให้เรียกใช้คำสั่งที่กำหนดเองเมื่อได้รับจดหมายใหม่
ฉันใช้อัลไพน์เป็นผู้อ่านจดหมายหลักของฉัน ในขณะที่ฉันใช้เวลาเกือบทั้งวันในเทอร์มินัลหรือ Emacs มันคงจะดีถ้าได้รับการแจ้งเตือนเกี่ยวกับเมลใหม่โดยใช้ alert-bin มีวิธีใดบ้างที่ฉันสามารถกำหนดค่าอัลไพน์ให้เรียกใช้คำสั่งที่กำหนดเองเมื่อได้รับจดหมายใหม่
คำตอบ:
มีตัวเลือกการกำหนดค่า "เส้นทาง NewMail FIFO" ในอัลไพน์ การขอความช่วยเหลือ:
คุณอาจให้อัลไพน์สร้างไฟล์พิเศษ FIFO (เรียกว่าไพพ์ที่มีชื่อ) ซึ่งมันจะส่งข้อความหนึ่งบรรทัดทุกครั้งที่ได้รับข้อความใหม่ในโฟลเดอร์ปัจจุบัน INBOX หรือโฟลเดอร์ Stayopen ที่เปิดอยู่ เพื่อป้องกันอัลไพน์ที่แตกต่างกันสองแบบทั้งการเขียนไปที่ FIFO เดียวกันอัลไพน์จะสร้าง FIFO และเขียนลงไปหากยังไม่มีอยู่
ดังนั้นฉันจึงตั้งค่าตัวเลือกเป็น '/tmp/alpine.fifo' และเขียนโปรแกรมอรรถประโยชน์เพื่ออ่านข้อความจาก FIFO และเรียกใช้ 'แจ้งเตือนการส่ง':
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#define FIFO_NAME "/tmp/alpine.fifo"
int main(void)
{
char s[512];
char cmd[512];
int num;
int fd = open(FIFO_NAME, O_RDONLY);
do {
if ((num = read(fd, s, 300)) == -1)
perror("read");
else {
s[num] = '\0';
sprintf(cmd, "notify-send -t 0 'New mail:' '%s'", s);
system(cmd);
}
} while (num > 0);
return 0;
}
บันทึกลงใน alpine-notifier.c และคอมไพล์ด้วยคำสั่ง 'gcc alpine-notifier.c -o alpine-notifier' เริ่ม 'ตัวแจ้งเตือนอัลไพน์' หลังจากเริ่มต้นอัลไพน์ เพลิดเพลินกับการแจ้งเตือนแบบผุดขึ้น
อัปเดต :
ฉันไม่พอใจกับคำตอบก่อนหน้าของฉันดังนั้นฉันจึงปรับปรุงสคริปต์เป็นจำนวนมากและสร้างrepo gitHubให้กับมัน
ตอนนี้คุณไม่ต้องเริ่มสคริปต์หลังจากเริ่มต้นอัลไพน์สคริปต์จะดูแลทุกอย่างให้คุณ แกนกลางของสคริปต์ส่วนใหญ่เหมือนกัน (ฉันปรับปรุงการแยกวิเคราะห์เพียงเล็กน้อย):
#! /bin/bash
while read L; do
n=$(($n + 1))
if [[ n -gt 3 ]]; then
name=`echo "$L" | sed 's/ \+/\t/g;s/^\(+ \)\?\([^\t]*\)\t\([^\t]*\)[\t ].*/\2/'`
subject=`echo "$L" | sed 's/ \+/\t/g;s/^\([^\t]*\)\t\(Re: \?\)\?\([^\t]*\)[\t ].*/\3/'`
box=`echo "$L" | sed 's/ \+/\t/g;s/^\([^\t]*\)\t\([^\t]*\)[\t ]\([^\t]*\).*/\3/'`
notify-send -t 10000 $iconcommand "Mail from $name" "$subject\n-\nIn your $box."
fi
done < <(cat alpine.fifo)
ส่วนที่เหลือของมันมีขนาดใหญ่เล็ก ๆ น้อย ๆ เพื่อโพสต์ที่นี่เพื่อให้ทุกคนที่สนใจก็สามารถได้รับมันที่ซื้อคืน
content
และname
มีบั๊กกี้เล็กน้อยในบางกรณีซึ่งค่อนข้างโง่เพราะมันเป็นเหตุผลที่ฉันโพสต์คำตอบเลย = P
คุณไม่สามารถใช้เครื่องมือแจ้งเตือนทางอีเมลแบบพิเศษเช่น Gnubiff, จดหมายแจ้งเตือนหรือ kbiff ได้หรือไม่?
ไม่สามารถปรับแต่ง "การแจ้งเตือนจดหมายใหม่" ของอัลไพน์
ไม่มีตัวเลือกดังกล่าวที่กล่าวถึงในที่มีเอกสารการกำหนดค่า
นี่คือข้อความที่ยกมาจากรายชื่อผู้รับจดหมายจาก Eduardo Chappa:
ฉันสังเกตว่าอัลไพน์ให้การแจ้งเตือนด้วยภาพในเทอร์มินอล Gnome โดยการกระพริบหน้าจอเมื่อมีจดหมายใหม่มา มีวิธีใดที่จะปรับแต่งการแจ้งเตือนเช่นนั้นมันเล่นเสียงหรืออะไรซักอย่าง?
[ .. ]
ตอนนี้คุณสามารถเดาได้ว่าอัลไพน์จะส่งเสียงบี๊บเท่านั้น ใน Web Alpine เป็นไปได้ที่จะส่งไฟล์ที่จะเล่น (ไปยังเบราว์เซอร์) สำหรับการแจ้งเตือนทางอีเมลใหม่ ไม่มีคุณสมบัติดังกล่าวใน Unix, Mac หรือ Windows Alpine
ตัวเลือกของคุณอยู่ในขณะนี้:
และเพื่ออ้างถึงผู้พัฒนาโปรแกรมรับส่งเมลที่โปรดปรานของฉัน:
ลูกค้าทุกคนดูด ...
:-)