OWA में, किसी संदेश का उत्तर देने के लिए चुनें। बुरी तरह से उद्धृत संदेश पाठ प्रकट होता है।
उचित रूप से स्मार्ट संपादक में संदेश पाठ को खोलने के लिए इट्स ऑल टेक्स्ट या कुछ अन्य समान टूल का उपयोग करें।
इस स्क्रिप्ट के माध्यम से संपूर्ण संदेश टेक्स्ट को फ़िल्टर करें। जैसे विम टाइप में :%!path-to-script.rb
, स्क्रिप्ट को अमल में लाने के बाद।
फ़िल्टर के आउटपुट के साथ मूल मेसेज पाठ बदलें। यदि इट्स ऑल टेक्स्ट का उपयोग कर रहे हैं, तो टाइप करें :wq
।
Presto! सही रूप से उद्धृत संदेश। आपको अपने सिग को स्थानांतरित करना पड़ सकता है, हालांकि।
यह कैसे उपयोग करने के लिए है, अब यहाँ स्क्रिप्ट है:
#!/usr/bin/env ruby
# Fix outlook quoting. Inspired by perl original by Kevin D. Clark.
# This program is meant to be used as a text filter. It reads a plaintext
# outlook-formatted email and fixes the quoting to the "internet style",
# so that::
#
# -----Original Message-----
# [from-header]: Blah blah
# [timestamp-header]: day month etc
# [...]
#
# message text
#
# or::
#
# ___________________________
# [from-header]: Blah blah
# [timestamp-header]: day month etc
# [...]
#
# message text
#
# becomes::
#
# On day month etc, Blah blah wrote:
# > message text
#
# It's not meant to alter the contents of other peoples' messages, just to
# filter the topmost message so that when you start replying, you get a nice
# basis to start from.
require 'date'
require 'pp'
message = ARGF.read
# split into two parts at the first reply delimiter
# match group so leaves the delim in the array,
# this gets stripped away in the FieldRegex if's else clause
msgparts = message.split(/(---*[\w\s]+---*|______*)/)
# first bit is what we've written so far
mymsg = msgparts.slice!(0)
# rest is the quoted message
theirmsg = msgparts.join
# this regex separates message header field name from field content
FieldRegex = /^\s*(.+?):\s*(.+)$/
from = nil
date = nil
theirbody = []
theirmsg.lines do |line|
if !from || !date
if FieldRegex =~ line
parts = line.scan(FieldRegex)
if !from
from = parts.first.last
elsif !date
begin
DateTime.parse(parts.first.last)
date = parts.first.last
rescue ArgumentError
# not a parseable date.. let's just fail
date = " "
end
end
else
# ignore non-field, this strips extra message delims for example
end
else
theirbody << line.gsub(/^/, "> ").gsub(/> >/, ">>")
end
end
puts mymsg
puts "On #{date}, #{from} wrote:\n"
puts theirbody.join("")