> ## Documentation Index
> Fetch the complete documentation index at: https://agentictoolbox.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Email

> A tool for sending emails using Laravel Mail.

**class**: `JordanPrice\Toolbox\Tools\Email\EmailTool`\
**env vars**: `None`\
**source**: [GitHub](https://github.com/jordan-price/toolbox/blob/main/src/Tools/Email/EmailTool.php)

## Prism Integration

```php theme={null}
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:

```php theme={null}
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:

```bash theme={null}
# Publish just this tool
php artisan toolbox:publish email

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

## Methods

### \_\_invoke

Send an email.

```php theme={null}
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
