Đây là lệnh slocalmh có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
slocal - lọc không đồng bộ và gửi thư mới
SYNOPSIS
/ usr / lib / mh / slocal [-addr địa chỉ] [-thông tin dữ liệu] [-người gửi người gửi] [-người dùng tên truy nhập]
[-hộp thư mbox] [-tập tin hồ sơ] [-chuyển phát thư hồ sơ giao hàng] [-bèo thuyền | -noverbose]
[-suppressdup | -nosuppressdup] [-gỡ lỗi] [-phiên bản] [-Cứu giúp]
MÔ TẢ
Lười biếng là một chương trình được thiết kế để cho phép bạn xử lý thư đến của mình theo
một tập hợp các tiêu chí lựa chọn phức tạp. Bạn thường không gọi lười biếng chính bạn, đúng hơn
lười biếng được thay mặt cho bạn bởi Đại lý chuyển tin nhắn trong hệ thống của bạn (chẳng hạn như
gửi thư) khi tin nhắn đến.
Các tiêu chí lựa chọn tin nhắn được sử dụng bởi lười biếng is quy định Trong tập tin ".chuyển phát thư"Trong
thư mục chính của người dùng. Bạn có thể chỉ định một tệp thay thế với -chuyển phát thư hồ sơ
Lựa chọn. Cú pháp của tệp này được chỉ định bên dưới.
Địa chỉ gửi tin nhắn và người gửi tin nhắn được xác định từ Chuyển tin nhắn
Thông tin phong bì đại lý, nếu có thể. Dưới gửi thư, người gửi sẽ nhận được từ
dòng UUCP “Từ:”, nếu có. Người dùng có thể ghi đè các giá trị này bằng -addr và
-người gửi thiết bị chuyển mạch.
Thông báo thường được đọc từ đầu vào chuẩn. Các -tập tin chuyển đổi đặt tên của
tệp mà từ đó thư sẽ được đọc, thay vì đọc stdin. Cái này hữu ích
khi gỡ lỗi một “.chuyển phát thư" tập tin.
-người dùng chuyển đổi nói với lười biếng tên của người dùng mà nó đang gửi thư. Các
-hộp thư chuyển đổi nói với lười biếng tên của tệp maildrop của người dùng.
lười biếng có thể phát hiện và ngăn chặn các tin nhắn trùng lặp. Để kích hoạt điều này, hãy sử dụng tùy chọn
-suppressdup. lười biếng sẽ giữ một cơ sở dữ liệu có chứa ID tin nhắn đến
để phát hiện các bản sao. Tùy thuộc vào cấu hình của bạn, cơ sở dữ liệu này
sẽ ở định dạng db ndbm hoặc Berkeley.
-thông tin switch có thể được sử dụng để chuyển một đối số tùy ý đến các quy trình con lười biếng
có thể kêu gọi thay mặt bạn.
-bèo thuyền chuyển đổi nguyên nhân lười biếng để cung cấp thông tin trên stdout về tiến trình của nó. Các
-gỡ lỗi switch tạo ra nhiều đầu ra gỡ lỗi dài dòng hơn trên stderr. Những lá cờ này rất hữu ích
khi tạo và gỡ lỗi “.chuyển phát thư”, Vì chúng cho phép bạn xem
quyết định và hành động lười biếng đang sử dụng, cũng như kiểm tra lỗi cú pháp trong
".chuyển phát thư" tập tin.
Tin nhắn chuyển khoản Đại lý
Hầu hết các MTA hiện đại bao gồm gửi thư, postfix và thi hỗ trợ một tệp. forward cho
chỉ đạo thư đến. Bạn nên bao gồm dòng
“| / usr / lib / mh / slocal-ten người dùng ”
trong tệp .ward của bạn trong thư mục chính của bạn. Điều này sẽ khiến MTA của bạn gọi ra lười biếng
thay mặt bạn khi có tin nhắn.
Chuyển phát thư Tập tin
Các ".chuyển phát thư”Tệp kiểm soát cách thức lười biếng lọc và gửi thư đến. Mỗi
dòng của tệp này bao gồm năm trường, được phân tách bằng khoảng trắng hoặc dấu phẩy. Từ
dấu ngoặc kép được tôn trọng, những ký tự này có thể được bao gồm trong một đối số duy nhất bởi
đặt toàn bộ đối số trong dấu ngoặc kép. Một dấu ngoặc kép có thể được bao gồm bởi
trước nó bằng một dấu gạch chéo ngược. Các dòng bắt đầu bằng `# 'và các dòng trống bị bỏ qua.
Định dạng của mỗi dòng trong “.chuyển phát thư”Tệp là:
cú đội đầu Belt Hold hoạt động kết quả chuỗi
cú đội đầu:
Tên của trường tiêu đề (chẳng hạn như Tới, Cc hoặc Từ) sẽ được tìm kiếm
mẫu. Đây là bất kỳ trường nào trong tiêu đề của thư có thể hiện diện.
Các trường đặc biệt sau cũng được xác định:
nguồn thông tin người gửi ngoài băng tần
địa chỉ địa chỉ đã được sử dụng để giao hàng cho người nhận
mặc định trận đấu này có thể nếu tin nhắn vẫn chưa được gửi đi
* điều này luôn phù hợp
Belt Hold:
Chuỗi ký tự cần khớp trong trường tiêu đề được chỉ định. Đối sánh là trường hợp-
không nhạy cảm, nhưng không sử dụng biểu thức chính quy.
hoạt động:
Hành động cần thực hiện để truyền tải thông điệp. Khi một tin nhắn được gửi đi, một
Tiêu đề "Ngày giao hàng: ngày tháng" được thêm vào cho biết ngày và giờ thông báo đó
được giao.
phá hủy
Hành động này luôn luôn thành công.
hồ sơ, mbox, hoặc là >
Nối tin nhắn vào tệp có tên bằng chuỗi. Thông báo được thêm vào
tệp ở định dạng mbox (uucp). Đây là định dạng được hầu hết các ứng dụng thư khác sử dụng
(chẳng hạn như mailx, elm). Nếu tin nhắn có thể được nối vào tệp, thì điều này
hành động thành công.
mmdf
Giống hệt hồ sơ, nhưng luôn thêm thư bằng định dạng hộp thư MMDF.
đường ống or |
Đưa thông điệp làm đầu vào tiêu chuẩn cho lệnh được đặt tên bởi chuỗi, sử dụng
Vỏ Bourne sh để diễn giải chuỗi. Trước khi cung cấp chuỗi cho
shell, nó được mở rộng với các biến tích hợp sau:
$ (sender) thông tin người gửi nằm ngoài dải tần
$ (địa chỉ) địa chỉ đã được sử dụng để gửi cho người nhận
$ (size) kích thước của thông báo tính bằng byte
$ (trả lời) trường “Trả lời đến:” hoặc “Từ:” của thư
$ (thông tin) thông tin ngoài băng tần được chỉ định
qpipe or ^
Tương tự như đường ống, nhưng thực thi lệnh trực tiếp, sau biến tích hợp sẵn
mở rộng, mà không có sự hỗ trợ từ vỏ. Hành động này có thể được sử dụng để tránh
trích dẫn các ký tự đặc biệt mà shell của bạn có thể diễn giải.
thư mục or +
Lưu trữ tin nhắn trong bước sóng thư mục được đặt tên bởi chuỗi. Hiện tại việc này đã được xử lý
bằng cách chuyển tin nhắn đến bước sóng chương trình rcvstore, mặc dù điều này có thể thay đổi trong
tương lai.
kết quả:
Cho biết cách hành động nên được thực hiện:
A Thực hiện các hành động. Nếu hành động thành công, thì thông báo được coi là
đã giao hàng.
R Thực hiện các hành động. Bất kể kết quả của hành động như thế nào, thông điệp không
coi như đã giao.
? Chỉ thực hiện hành động nếu tin nhắn chưa được gửi đi. Nếu hành động
thành công, sau đó thông điệp được coi là đã gửi.
N Chỉ thực hiện hành động nếu tin nhắn chưa được gửi và trước đó
hành động đã thành công. Nếu hành động này thành công, thì thông báo được coi là
đã giao hàng.
Tệp phân phối luôn được đọc hoàn toàn, do đó có thể thực hiện một số đối sánh và
một số hành động có thể được thực hiện.
Bảo mật of Giao hàng tận nơi Các Tập Tin
Để ngăn chặn các vấn đề an ninh, “.chuyển phát thư”Tệp phải được sở hữu bởi
người dùng hoặc bởi root, và chỉ chủ sở hữu mới có thể ghi được. Nếu đây không phải là trường hợp,
tập tin không được đọc.
Nếu người Viking.chuyển phát thư”Không thể tìm thấy tệp hoặc không thực hiện một hành động mang lại
tin nhắn, sau đó lười biếng sẽ kiểm tra tệp phân phối toàn cầu tại / etc / nmh / maildelivery.
Tệp này được đọc theo các quy tắc tương tự. Tệp này phải được sở hữu bởi root và phải
chỉ có thể ghi bởi root.
Nếu không thể tìm thấy tệp phân phối toàn cầu hoặc không thực hiện hành động phân phối
thông báo, sau đó phân phối tiêu chuẩn đến maildrop của người dùng được thực hiện.
Ví dụ Giao hàng tận nơi Tập tin
Tóm lại, đây là một tệp phân phối mẫu:
#
# .maildelivery tệp cho nmh's slocal
#
# Dòng trống và dòng bắt đầu bằng dấu '#' bị bỏ qua
#
# KẾT QUẢ HÀNH ĐỘNG MẪU TRƯỜNG STRING
#
# Gửi thư bằng foobar trong dòng “Tới:” vào tệp foobar.log
Tới tệp foobar A foobar.log
# Thông báo đường ống từ coleman đến kho lưu trữ thông báo chương trình
Từ coleman pipe A / bin / message-archive
# Bất cứ thứ gì trong danh sách gửi thư “nmh-worker” đều được đưa vào
# thư mục riêng của nó, nếu chưa được lưu trữ
Tới thư mục nmh-worker? nmh-công nhân
# Bất kỳ thứ gì có Unix trong chủ đề đều được đưa vào
# tệp unix-mail
Chủ đề tệp unix Một unix-mail
# Tôi không muốn đọc thư từ Steve, vì vậy hãy hủy nó
Từ steve tiêu diệt A -
# Đặt bất cứ thứ gì chưa khớp vào hộp thư
mặc định - tệp? hộp thư
# luôn chạy rcvtty
* - đường ống R / usr / lib / mh / rcvtty
Quy trình phụ môi trường
Khi một quy trình được gọi, môi trường của nó là: id người dùng / nhóm được đặt thành của người nhận
id; thư mục làm việc là thư mục chính của người nhận; umask là 0077; NS
quy trình không có / dev / tty; đầu vào tiêu chuẩn được đặt thành tin nhắn; đầu ra tiêu chuẩn và
đầu ra chẩn đoán được đặt thành / dev / null; tất cả các bộ mô tả tệp khác đều bị đóng; NS
biến môi trường USER $, $ HOME, $ SHELL được đặt một cách thích hợp và không có môi trường nào khác
các biến tồn tại.
Quá trình được cung cấp một khoảng thời gian nhất định để thực hiện. Nếu quá trình không thoát
trong giới hạn này, quá trình sẽ bị kết thúc với định kiến cực đoan. Số lượng
thời gian được tính là ((size / 60) + 300) giây, trong đó kích thước là số byte tính bằng
tin nhắn (với thời gian tối đa cho phép là 30 phút).
Trạng thái thoát của quy trình được tham khảo để xác định mức độ thành công của hành động. Một
trạng thái thoát bằng XNUMX có nghĩa là hành động đã thành công. Bất kỳ trạng thái thoát nào khác (hoặc bất thường
chấm dứt) có nghĩa là hành động không thành công.
Để tránh bất kỳ giới hạn nào về thời gian, bạn có thể triển khai một quy trình bắt đầu bằng
ngã ba()-NS. Cha mẹ sẽ trả về giá trị thích hợp ngay lập tức, và con
có thể tiếp tục, làm bất cứ điều gì nó muốn miễn là nó muốn. Cách tiếp cận này là
hơi rủi ro nếu cha mẹ trả về trạng thái thoát là XNUMX. Nếu cha mẹ là
sẽ trả về trạng thái thoát khác XNUMX, khi đó cách tiếp cận này có thể dẫn đến phân phối nhanh hơn
vào maildrop của bạn.
Sử dụng slocalmh trực tuyến bằng các dịch vụ onworks.net