def run_qmail_queue(command=nil, &block)
msg_read, msg_write = IO.pipe
env_read, env_write = IO.pipe
@child=fork
unless @child
$stdin.close
msg_read.dup
msg_read.close
msg_write.close
$stdout.close
env_read.dup
env_read.close
env_write.close
Dir.chdir(@options[:qmail_root])
exec( command || @options[:qmail_queue] )
raise "Exec qmail-queue failed"
end
if block_given?
yield(msg_write, env_write)
env_write.close
wait(@child)
@success = $? >> 8
return @sucess
end
{:msg=>msg_write, :env=>env_write, :pid=>@child}
end