Class: Roebe::SendEmail

Inherits:
Base show all
Defined in:
lib/roebe/classes/send_email.rb

Overview

Roebe::SendEmail

Constant Summary

Constants inherited from Base

Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE

Instance Method Summary collapse

Methods inherited from Base

#actions, #append_this_onto_that_file, #append_what_into, #be_silent, #be_verbose?, #beautiful_url, #burlywood, #call_next, #chdir, #cheerful_guy, #cliner, #complex_esystem, #convert_global_env, #copy_directory, #copy_file, #cornflowerblue, #create_directory, #crimson, #current_month?, #current_time?, #current_year?, #cyan, #darkcyan, #darkgreen, #darkkhaki, #darkslateblue, #deeppink, #delete_symlink, #do_not_use_the_base_colours, #do_use_the_base_colours, #e, #ecomment, #editor_to_use?, #efancy, #eimp, #emphasis, #ensure_main_encoding, #ensure_utf_encoding, #eparse, #erev, #esteelblue, #etomato, #ewarn, #exit_program, #firebrick, #get_current_day, #get_current_month, #get_files_and_directories, #get_files_from, #get_german_name_for_this_weekday, #gold, #green, #grey, #hh_mm_ss, #hh_mm_ss_day_month_year, #home_dir?, #home_directory_of_user_x?, #infer_the_namespace, #internal_hash?, #is_a_directory?, #is_a_file?, #is_a_jpg_file?, #is_an_image_file?, #is_archive?, #is_audio_file?, #is_in_studium_dir?, #is_multimedia_file?, #is_on_roebe?, #is_on_windows?, #is_studium_available?, #is_symlink?, #is_this_a_ruby_file?, #is_video_file?, #iso_encoding?, #le, #left_colour, #lightblue, #lightgreen, #lightseagreen, #lightsteelblue, #lime, #limegreen, #localhost_to_data, #log_directory?, #main_encoding?, #mediumorchid, #mediumpurple, #mediumseagreen, #mediumslateblue, #mediumspringgreen, #mediumturquoise, #mkdir_p, #mv, #n_days_in_this_month, #n_pages_in_this_pdf_file?, #namespace?, #no_file_exists_at, #ogrey, #olive, #olivedrab, #open_in_browser, #opne, #opnesystem, #opnn, #orange, #orchid, #orev, #palegoldenrod, #palevioletred, #pink, #powderblue, #programs_dir?, #project_base_dir?, #random_html_colour, #rds, #read_file_in_iso_encoding, #read_file_via_the_default_encoding, #read_lines_via_iso_encoding, #readlines_with_main_encoding, #red, #register_sigint, #remove, #remove_directory, #remove_file, #rename_kde_konsole_tab, #replace_localhost_with_data, #report_pwd, #require_rescue, #reset_the_internal_hash, #return_all_directories_from_this_directory, #return_all_files_from_this_directory, #return_current_directory, #return_dd_mm_yyyy, #return_file_or_directory_of, #return_files_from_pwd, #return_last_part_of_the_current_directory, #return_utc, #rev, #right_arrow?, #right_colour, #roebe_log_directory?, #rosybrown, #royalblue, #ruby_base_directory?, #run_in_background, #run_rcfiles_then_run_ata_via_qdbus, #sandybrown, #sdir, #seagreen, #set_be_verbose, #set_xorg_buffer, #sfancy, #sfile, #show_help, #silent_redirection?, #simp, #simple_esystem, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #string_italic, #swarn, #symlink, #teal, #temp_dir?, #to_camelcase, #to_counted_hash, #tomato, #touch, #try_to_require_the_beautiful_url_gem, #try_to_require_the_html_template, #try_to_require_the_open_gem, #try_to_require_the_program_information_gem, #try_to_require_the_xorg_buffer, #use_colours?, #verbose_truth, #weekday?, #word_wrap, #write_what_into, #yellow

Methods included from Base::CommandlineArguments

#append_onto_the_commandline_arguments, #clear_commandline_arguments, #commandline_arguments?, #commandline_arguments_as_string?, #commandline_arguments_without_leading_hyphens?, #first_argument?, #first_argument_without_leading_hyphens?, #has_an_argument_been_passed?, #remove_hyphened_arguments_from_the_commandline_arguments, #return_commandline_arguments_with_leading_hyphens, #second_argument?, #set_commandline_arguments

Constructor Details

#initialize(i = ARGV, run_already = true) ⇒ SendEmail

#

initialize

#


29
30
31
32
33
34
35
36
# File 'lib/roebe/classes/send_email.rb', line 29

def initialize(
    i           = ARGV,
    run_already = true
  )
  reset
  set_commandline_arguments(i)
  run if run_already
end

Instance Method Details

#resetObject

#

reset (reset tag)

#


41
42
43
44
# File 'lib/roebe/classes/send_email.rb', line 41

def reset
  super()
  infer_the_namespace
end

#runObject

#

run (run tag)

#


136
137
# File 'lib/roebe/classes/send_email.rb', line 136

def run
end

#send_email_via_smtp(content_of_the_message_that_is_to_be_sent = '', use_this_server = 'localhost', the_email_was_sent_from = :default, the_email_will_be_sent_to = :default) ⇒ Object

#

send_email_via_smtp

SMTP typically has four headers:

From,
To,
Subject,
Date.

These different entries are:

From:       This defines the name and address from which to send the email.
To:         This sets the recipient's address.
Subject:    Subject of the Message.
Date:       Date
Message-Id: Unique message ID

The default port number for SMTP is 25.

An attachment, such as a .pdf file, can be sent by changing the Content-type to multipart/mixed.

To send the message to multiple different people you can do:

smtp.send_message(message, '[email protected]',
    '[email protected]', '[email protected]',
    '[email protected]', '[email protected]')
#


76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/roebe/classes/send_email.rb', line 76

def send_email_via_smtp(
    content_of_the_message_that_is_to_be_sent = '',
    use_this_server                           = 'localhost', #smtp.inbox.lt', # Here you should add the SMTP server. # 'your.smtp.server'
    # https://www.inbox.lt/ smtp.gmail.com
    # smtp.inbox.lt
    the_email_was_sent_from                   = :default, # source-email, from the sender
    the_email_will_be_sent_to                 = :default
  )
  case the_email_was_sent_from
  # ======================================================================= #
  # === :default
  # ======================================================================= #
  when :default
    the_email_was_sent_from = 's|h|e|v|[email protected]'
  end
  case the_email_will_be_sent_to
  # ======================================================================= #
  # === :default
  # ======================================================================= #
  when :default
    the_email_will_be_sent_to = 's|h|e|v|[email protected]'
  end
  # ======================================================================= #
  #
  #   From:       This defines the name and address from which to send
  #               the email.
  #   To:         This sets the recipient's address.
  #   Subject:    Subject of the Message.
  #   Date:       Date
  #   Message-Id: Unique message ID
  #
  # ======================================================================= #
  if the_email_was_sent_from and
     the_email_was_sent_from.include?('@') and
    (the_email_was_sent_from.count('|') > 2)
    the_email_was_sent_from = the_email_was_sent_from.dup
    the_email_was_sent_from.delete!('|')
    the_email_will_be_sent_to.delete!('|') # This line may have to be changed at a later time.
  end
  # ======================================================================= #
  # Delegate towards Net:SMTP next - additional information can be passed
  # to .start() such as localhost, username or password.
  #
  # Example for this:
  #
  #   Net::SMTP.start('localhost', 25, 'mail.domain', 'username', 'password', :login_method)
  #
  # ======================================================================= #
  Net::SMTP.start(use_this_server, 25) { |smtp|
    smtp.send_message(
      content_of_the_message_that_is_to_be_sent,
      the_email_was_sent_from,
      the_email_will_be_sent_to
    )
  }
end