# Laminas mail smtp - Unable to resolve service to a factory

**URL:** <https://discourse.laminas.dev/t/laminas-mail-smtp-unable-to-resolve-service-to-a-factory/2166>\
**Category:** Components & MVC\
**Tags:** laminas-mvc, laminas-mail\
**Created:** [March 8, 2021, 9:27am UTC](https://discourse.laminas.dev/t/laminas-mail-smtp-unable-to-resolve-service-to-a-factory/2166 "2021-03-08T09:27:56Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Victor\_Annunziata](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/victor_annunziata/32/927_2.png) [@Victor\_Annunziata](https://discourse.laminas.dev/u/Victor_Annunziata)\
**Post date:** [March 8, 2021, 9:27am UTC](https://discourse.laminas.dev/t/laminas-mail-smtp-unable-to-resolve-service-to-a-factory/2166/1 "2021-03-08T09:27:56Z")

</div>

Hi everybody, I’m new to the Zend / Laminas world so I don’t kow if this is the right question to do.

I’m trying to make some testing with laminas sending e-mails via SMTP, but can’t make it work.

```php
use Laminas\Mail\Message;
use Laminas\Mail\Transport\Smtp as SmtpTransport;
use Laminas\Mail\Transport\SmtpOptions;

$transport = new SmtpTransport();
$options = new SmtpOptions(array(
    'name' => 'my.smtp.com',
    'host' => 'imap.gmail.com',
    'port' => 995,
    'connection_class' => 'login',
    'connection_config' => array(
        'ssl' => 'SSL',
        'username' => 'my_mail@gmail.com',
        'password' => 'my_password'
    )
));
$transport->setOptions($options);

$message = new Message();
$transport->send($message);

```

It was just like in the examples, but when i run it I get this error:

```auto
PHP Fatal error: Uncaught Laminas\ServiceManager\Exception\ServiceNotFoundException:Unable to resolve service "Laminas\Mail\Protocol\Smtp\Auth\Login" to a factory; are you certain you provided it during configuration? in /ServiceManager.php:588

```

But I can’t find any reference anywhere that states that I have to define a factory for Smtp/Login.  
And it is a Laminas internal class, I dont know what to do. Please, help!

---

<div class="post-metadata">

**Author:** ![renanliberato](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/renanliberato/32/904_2.png) [@renanliberato](https://discourse.laminas.dev/u/renanliberato)\
**Post date:** [March 8, 2021, 10:05am UTC](https://discourse.laminas.dev/t/laminas-mail-smtp-unable-to-resolve-service-to-a-factory/2166/2 "2021-03-08T10:05:39Z")

</div>

Hi!  
I’d recommend you to confirm that you have a “Laminas\Mail” item in your modules.config.php. Probably the module declares the factory…

---

<div class="post-metadata">

**Author:** ![Victor\_Annunziata](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/victor_annunziata/32/927_2.png) [@Victor\_Annunziata](https://discourse.laminas.dev/u/Victor_Annunziata)\
**Post date:** [March 8, 2021, 10:47am UTC](https://discourse.laminas.dev/t/laminas-mail-smtp-unable-to-resolve-service-to-a-factory/2166/3 "2021-03-08T10:47:28Z")

</div>

Thanks for your help, do you mean in Laminas\Mail module? Or in my laminas MVC app config?

---

<div class="post-metadata">

**Author:** ![Victor\_Annunziata](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/victor_annunziata/32/927_2.png) [@Victor\_Annunziata](https://discourse.laminas.dev/u/Victor_Annunziata)\
**Post date:** [March 8, 2021, 10:57am UTC](https://discourse.laminas.dev/t/laminas-mail-smtp-unable-to-resolve-service-to-a-factory/2166/4 "2021-03-08T10:57:10Z")

</div>

I just discovered the problem is related to the Smtp Auth since sending my message with FileTransport or Sendmail does work!

---

<div class="post-metadata">

**Author:** ![renanliberato](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/renanliberato/32/904_2.png) [@renanliberato](https://discourse.laminas.dev/u/renanliberato)\
**Post date:** [March 8, 2021, 2:21pm UTC](https://discourse.laminas.dev/t/laminas-mail-smtp-unable-to-resolve-service-to-a-factory/2166/5 "2021-03-08T14:21:12Z")

</div>

In your Laminas MVC config/modules.config.php, like here: [passwordless-auth-example/modules.config.php at master · renanliberato/passwordless-auth-example · GitHub](https://github.com/renanliberato/passwordless-auth-example/blob/master/config/modules.config.php#L15)

---

<div class="post-metadata">

**Author:** ![Victor\_Annunziata](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/victor_annunziata/32/927_2.png) [@Victor\_Annunziata](https://discourse.laminas.dev/u/Victor_Annunziata)\
**Post date:** [March 9, 2021, 7:06am UTC](https://discourse.laminas.dev/t/laminas-mail-smtp-unable-to-resolve-service-to-a-factory/2166/6 "2021-03-09T07:06:31Z")

</div>

Thank you! Problem solved!
