class: JordanPrice\Toolbox\Tools\Email\EmailTool
env vars: None
source: GitHub

Prism Integration

use JordanPrice\Toolbox\Tools\Email\EmailTool;
use EchoLabs\Prism\Prism;
use EchoLabs\Prism\Enums\Provider;
use EchoLabs\Prism\Enums\ToolChoice;

$emailTool = new EmailTool();

$prism = Prism::text()
    ->using(Provider::Anthropic, 'claude-3-5-sonnet-latest')
    ->withPrompt('Send an email to user@example.com')
    ->withTools([$emailTool])  // Pass the tool instance
    ->toolChoice(ToolChoice::Any);

$response = $prism->generate();

Configuration

You can customize the email settings in your config/toolbox.php file:
return [
    'email' => [
        // Custom Mailable class (optional)
        'mailable' => \App\Mail\CustomEmail::class,
        
        // Custom email view (optional)
        'view' => 'emails.custom'
    ]
];

Publish

Optionally, you can publish the configuration and view files to make modifications:
# Publish just this tool
php artisan toolbox:publish email

# Or publish all tools
php artisan toolbox:publish --all

Methods

__invoke

Send an email.
public function __invoke(string $to, string $subject, string $body): string

Parameters

  • to (string): Email address to send to
  • subject (string): Subject of the email
  • body (string): Body of the email

Returns

  • string: Response message indicating email status