Class: RCrewAI::Tools::EmailSender
- Defined in:
- lib/rcrewai/tools/email_sender.rb
Constant Summary
Constants included from RCrewAI::ToolSchema
Instance Method Summary collapse
- #execute(**params) ⇒ Object
-
#initialize(**options) ⇒ EmailSender
constructor
A new instance of EmailSender.
Methods inherited from Base
available_tools, create_tool, #description, #execute_with_validation, #json_schema, list_available_tools, #name, #validate_params!
Methods included from RCrewAI::ToolSchema
#description, extended, #json_schema, #param, #params, #tool_name
Constructor Details
#initialize(**options) ⇒ EmailSender
Returns a new instance of EmailSender.
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/rcrewai/tools/email_sender.rb', line 22 def initialize(**) super() @smtp_server = [:smtp_server] || 'localhost' @smtp_port = [:smtp_port] || 587 @username = [:username] @password = [:password] @from_address = [:from_address] || @username @use_tls = .fetch(:use_tls, true) @max_recipients = .fetch(:max_recipients, 10) setup_mail_configuration end |
Instance Method Details
#execute(**params) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/rcrewai/tools/email_sender.rb', line 34 def execute(**params) validate_params!( params, required: %i[to subject body], optional: %i[cc bcc reply_to attachments] ) to_addresses = normalize_email_addresses(params[:to]) cc_addresses = normalize_email_addresses(params[:cc]) if params[:cc] bcc_addresses = normalize_email_addresses(params[:bcc]) if params[:bcc] begin validate_email_params!(to_addresses, cc_addresses, bcc_addresses, params) result = send_email(to_addresses, cc_addresses, bcc_addresses, params) format_email_result(result, to_addresses) rescue StandardError => e "Email sending failed: #{e.}" end end |