lib/ronin/network/mixins/esmtp.rb in ronin-1.0.0 vs lib/ronin/network/mixins/esmtp.rb in ronin-1.1.0.rc1
- old
+ new
@@ -16,59 +16,70 @@
# You should have received a copy of the GNU General Public License
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
#
require 'ronin/network/esmtp'
+require 'ronin/ui/output/helpers'
+require 'ronin/mixin'
require 'parameters'
module Ronin
module Network
module Mixins
#
# Adds ESMTP convenience methods and connection parameters to a class.
#
+ # Defines the following parameters:
+ #
+ # * `host` (`String`) - ESMTP host.
+ # * `port` (`Integer`) - ESMTP port.
+ # * `esmtp_login` (`String`) - ESMTP authentication method to use.
+ # * `esmtp_user` (`String`) - ESMTP user to login as.
+ # * `esmtp_password` (`String`) - ESMTP password to login with.
+ #
module ESMTP
- include Parameters
+ include Mixin
- # ESMTP host
- parameter :host,
- :type => String,
- :description => 'ESMTP host'
+ mixin UI::Output::Helpers, Parameters
- # ESMTP port
- parameter :port,
- :type => Integer,
- :description => 'ESMTP port'
+ mixin do
+ # ESMTP host
+ parameter :host, :type => String,
+ :description => 'ESMTP host'
- # ESMTP authentication method to use
- parameter :esmtp_login,
- :type => String,
- :description => 'ESMTP authentication method to use'
+ # ESMTP port
+ parameter :port, :type => Integer,
+ :description => 'ESMTP port'
- # ESMTP user to login as
- parameter :esmtp_user,
- :type => String,
- :description => 'ESMTP user to login as'
+ # ESMTP authentication method to use
+ parameter :esmtp_login, :type => String,
+ :description => 'ESMTP authentication method to use'
- # ESMTP password to login with
- parameter :esmtp_password,
- :type => String,
- :description => 'ESMTP password to login with'
+ # ESMTP user to login as
+ parameter :esmtp_user, :type => String,
+ :description => 'ESMTP user to login as'
+ # ESMTP password to login with
+ parameter :esmtp_password, :type => String,
+ :description => 'ESMTP password to login with'
+ end
+
protected
#
# @see Ronin::Network::SMTP.message.
#
+ # @api public
+ #
def esmtp_message(options={},&block)
Network::SMTP.message(options,&block)
end
#
- # Creates a connection to the ESMTP server. The {#host}, {#port},
- # {#esmtp_login}, {#esmtp_user} and {#esmtp_password} parameters
+ # Creates a connection to the ESMTP server. The `host`, `port`,
+ # `esmtp_login`, `esmtp_user` and `esmtp_password` parameters
# will also be used to connect to the ESMTP server.
#
# @param [Hash] options
# Additional options.
#
@@ -96,10 +107,12 @@
# The ESMTP session.
#
# @return [Net::SMTP]
# The ESMTP enabled session.
#
+ # @api public
+ #
def esmtp_connect(options={},&block)
options[:port] ||= self.port
options[:login] ||= self.esmtp_login
options[:user] ||= self.esmtp_user
options[:password] ||= self.esmtp_password
@@ -112,12 +125,12 @@
return ::Net.esmtp_connect(self.host,options,&block)
end
#
- # Starts a session with the ESMTP server. The {#host}, {#port},
- # {#esmtp_login}, {#esmtp_user} and {#esmtp_password} parameters
+ # Starts a session with the ESMTP server. The `host`, `port`,
+ # `esmtp_login`, `esmtp_user` and `esmtp_password` parameters
# will also be used to connect to the ESMTP server.
#
# @param [Hash] options
# Additional options.
#
@@ -128,9 +141,11 @@
#
# @yieldparam [Net::SMTP] session
# The ESMTP session.
#
# @see esmtp_connect
+ #
+ # @api public
#
def esmtp_session(options={})
esmtp_connect(options) do |sess|
yield sess if block_given?