Ошибка почты send auth command first

I try to send mail using C# and yandex, but I get an error:

Error 5.5.4 Error: send AUTH command first

Here is my code. I try with different ports (587, 465..) and SMTP hosts (smtp.yandex.com.tr, smtp.yandex.com, smtp.yandex.ru…) but I get the same error for all attempts.

SmtpClient sc = new SmtpClient("smtp.yandex.com.tr", 587);
//sc.Port = 587;
//sc.Host = "smtp.yandex.com";

sc.EnableSsl = false;
sc.Credentials = new System.Net.NetworkCredential(System.Configuration.ConfigurationManager.AppSettings["Email"].ToString(), 
                                                  System.Configuration.ConfigurationManager.AppSettings["Sifre"].ToString());
sc.UseDefaultCredentials = false;
sc.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

marc_s's user avatar

marc_s

729k175 gold badges1327 silver badges1455 bronze badges

asked Feb 22, 2017 at 12:24

user1688401's user avatar

I had same error and I correct it via doing some setting at mail.yandex.com (in email account)

To fix it;
— Enter the mail address (mail.yandex.com)
— Settings
— Other Email application
— Set selected POP3 setting that is all.

Note : I used 587 port and smtp.yandex.com.tr host.

Have a nice day :)

answered Jul 8, 2019 at 9:01

Kemal Can ÖZÇELİK's user avatar

0

You must set sc.Credentials = new System.Net.NetworkCredential() after calling sc.UseDefaultCredentials = false;

UseDefaultCredentials = false will reset Credentials to null

try to switch lines order to:

sc.UseDefaultCredentials = false;
sc.Credentials = new System.Net.NetworkCredential(System.Configuration.ConfigurationManager.AppSettings["Email"].ToString(), 
                                                  System.Configuration.ConfigurationManager.AppSettings["Sifre"].ToString());

also valid settings for smtp.yandex.ru:

    smtpUserName=""
    enableSsl="true"
    smtpPassword=""
    smtpAuthentication="Basic"
    smtpServer="smtp.yandex.ru"
    smtpPort="465"

answered Aug 2, 2017 at 7:23

razon's user avatar

razonrazon

3,8042 gold badges32 silver badges46 bronze badges

Yandex Mail doesn’t support connection without SSL (according to https://yandex.com/support/mail/mail-clients.xml). Try to set EnableSsl to true and use host: smtp.yandex.com, port: 465. If it will not work — try port 25

answered Feb 22, 2017 at 14:12

oryol's user avatar

oryoloryol

5,1782 gold badges23 silver badges18 bronze badges

1

If it is a newly generated mail address, you must login with your browser and accept the agreement before trying to send email from C#. It was the case for me.

answered Jun 20, 2022 at 20:47

Ozkan Konca's user avatar

This error will happen if your password is wrong. That was the case for me at least.

answered Sep 21, 2017 at 21:17

Jorge.Methew's user avatar

I solve this problem my changing the SMTP host from smtp.yandex.com to smtp.yandex.ru and i was using port 25.
Works for me perfectly.
Here is the code:

EmailCredentials credentials = new EmailCredentials();
    credentials.Domain = "domain.com";
    credentials.SMTPUser = "webmail@domain.com";
    credentials.SMTPPassword = "pass";
    int SmtpPort = 25;
    string SmtpServer = "smtp.yandex.ru";

    MailMessage EmailMsg = new MailMessage();
    EmailMsg.From = new MailAddress("webmail@domain.com", "Domain");
    EmailMsg.To.Add(new MailAddress("info@domain.mk", "info@domain.mk"));
    EmailMsg.ReplyToList.Add("info@domain.com");

    EmailMsg.Subject = "Welcome";

    EmailMsg.Body = "HTML body code";

    EmailMsg.IsBodyHtml = true;
    EmailMsg.Priority = MailPriority.Normal;

    System.Net.Mail.SmtpClient SMTP = new System.Net.Mail.SmtpClient();
    SMTP.Host = SmtpServer;
    SMTP.Port = SmtpPort;
    SMTP.EnableSsl = true;
    SMTP.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
    SMTP.UseDefaultCredentials = false;
    SMTP.Credentials = new System.Net.NetworkCredential(credentials.SMTPUser, credentials.SMTPPassword);

    SMTP.Send(EmailMsg);

answered Mar 1, 2018 at 17:44

Kosta Stojcev's user avatar

There are two spf records in cpanel Domains Manage/Manage Zone. Deleting one fixed it. just leave the yandex spf record, delete the other one, it will be fixed.

answered May 15 at 22:00

Onur Yılmaz's user avatar

в супорте тут пишут:
ЦитатаERR [AUTH] login failure Ошибка авторизации. Сверьте настройки авторизации с теми, что предлагаются в справочной системе почтового сервера или запросите их у администрации сервера.
Цитатаor POP3 disabled Или отключен доступ по протоколу РОР3 для приёма почты. Если почтовый сервер предоставляет доступ через веб-интерфейс, то стоит проверить настройки ящика посредством веб-интерфейса, возможно там отключен доступ. Эту проблему может проверить только администрация почтового сервера, т.к. программа только цитирует сообщение сервера.

а человек, который разрабатывал сайт пишет.

http://help.yandex.ru/mail/?id=1113133

— здесь описана настройка The Bat для
почты, в качестве имени надо указывать полный адрес почты (например

elena@medisana39.ru

). Если сделаете все в соответствии с указаниями, должно
заработать, так же должны быть включены разрешение на использование почтовых
программ в самой почте (веб интерфейс -> настройка -> почтовые программ,
необходимо включить нужный Вам протокол IMAP или POP3).

а я как дилетант в этих вопросах, всё полистал, посмотрел.
в супорт яндекса писать смысла невижу, потому как, другая почта на яндексе TheBat! работает нормально, я сверил настройки транспорта они одинаковые на обоих компах, подскажите, лицензия слетит если попробовать переустановить программу саму? или нет смысла

Изменено: Евгений Торяник24.04.2013 18:54:43

Добрый день участники!
Столкнулся с проблемой, перерыл весь интернет, но нигде ничего путевого не нашел.

Использую Laravel 5.4 на Debian 8, проблема в следующем.

При попытке отправить письмо, выводит ошибку Expected response code 250 but got code «503», with message «503 5.5.4 Error: send AUTH command first.»

Пробовал и удалять все из .env и менять порты 465/587, менять TLS/SSL и прописывать ssl://smtp.yandex.ru — все бесполезно.
Все пароли от ящика подходят.

Настройки .env

MAIL_DRIVER=smtp
MAIL_HOST=smtp.yandex.ru
MAIL_PORT=587
MAIL_USERNAME=admin@example.ru
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls

Настройки config/mail.php
<?php

return [

    ‘driver’ => env(‘MAIL_DRIVER’, ‘smtp’),
    ‘host’ => env(‘MAIL_HOST’, ‘smtp.yandex.com’),
    ‘port’ => env(‘MAIL_PORT’, 587),
    ‘from’ => [
        ‘address’ => env(‘MAIL_FROM_ADDRESS’, ‘admin@example.ru’),
        ‘name’ => env(‘MAIL_FROM_NAME’, ‘Example’),
    ],
    ‘encryption’ => env(‘MAIL_ENCRYPTION’, ‘tls’),
    ‘username’ => env(‘admin@example.ru’),
    ‘password’ => env(‘password’),
    ‘sendmail’ => ‘/usr/sbin/sendmail -bs’,
    ‘pretend’ => false,
    ‘markdown’ => [
        ‘theme’ => ‘default’,

        ‘paths’ => [
            resource_path(‘views/vendor/mail’),
        ],
    ],

];

Использую простую функцию для отправки письма

Mail::raw(‘Текст письма’, function($message){
    $message->from(‘admin@example.ru’, ‘Admin’);
    $message->to(‘admin@admin.ru’);
});

Замечу одну вещь, при использовании другого smtp скрипта, письма отправляются успешно.

Ошибка возникающая при попытке отправки почты — 5.5.4 Error: send AUTH command first. Как эту неприятность исправить?

Чаще всего ошибка 5.5.4 Error: send AUTH command first при попытке отправить почту возникает у новых пользователей почтовых ящиков не только Яндекса, но и других доменов использующих корпоративную почту которую Яндекс предоставляет. При том не только в России, но у в региональных отделениях других стран.

Главная неприятность в том, что по крайне информативному сообщению устранить неисправность просто невозможно. Нам говорят что нужно сделать, но как это сделать не ясно. И настройки точно все правильные.

Сложного на практике ничего нет. Ошибка 5.5.4 Error: send AUTH command first возникает у новых пользователей которые создают почтовые ящики в панели управления и тут же пытаются отправлять сообщения почтовыми клиентами. Нужно помнить о том что новый почтовый ящик в Яндексе — недоактивирован!

Для полного включения всех функций, а именно отправки почты, нужно войти в новый почтовый ящик сначала через вэб интерфейс, через браузер. Как раз в этом случае первое что Вам предложат — принять лицензионное соглашение. Как только волшебная кнопка будет нажата отправка почты сразу начнет работать без замечаний и ошибок.

Как сконфигурировать postfix, чтобы он отправлял почту через stmp-сервер Яндекса

4 июля 2022 г.
3 min read

Я тут перевез свой блог в Облако Яндекса и по пути столкнулся с трудностью — не отправляются письма. В логах моего любимого почтовика постфикса ошибка:

Jun 17 00:32:56 vm1 postfix/smtp[1374175]: connect to gmail-smtp-in.l.google.com[142.251.1.26]:25: Connection timed out
Jun 17 00:32:56 vm1 postfix/smtp[1374175]: connect to gmail-smtp-in.l.google.com[2a00:1450:4010:c0d::1a]:25: Network is unreachable
Jun 17 00:33:26 vm1 postfix/smtp[1374175]: connect to alt1.gmail-smtp-in.l.google.com[142.250.157.27]:25: Connection timed out
Jun 17 00:33:26 vm1 postfix/smtp[1374175]: connect to alt1.gmail-smtp-in.l.google.com[2404:6800:4008:c13::1a]:25: Network is unreachable
Jun 17 00:33:56 vm1 postfix/smtp[1374175]: connect to alt2.gmail-smtp-in.l.google.com[173.194.202.26]:25: Connection timed out

Обратился в поддержку. Оказалось, что из облака исходящий трафик на 25 порт заблокирован. Отправлять почту можно только через сервера яндекса от имени какого-то пользователя.

Поскольку мой домен — codepoetry.ru
То пользователь пусть будет root@codepoetry.ru

Домен уже делегирован на яндекс, поэтому я просто добавил нового пользователя и залогинился под ним в почту, чтобы поставить галочку «Я согласен …»

Потом от этого пользователя зашел в настройки профиля и создал отдельный пароль:

Если у вас нет своего домена, то можете просто создать новый ящик вида myserverroot@yandex.ru — в остальном настройка ничем не отличается.

Дальше можно перейти к настройке, собственно, postfix.

Postfix relay

Дописываем в основной конфиг /etc/postfix/main.cf следующие строки:

smtp_sasl_auth_enable = yes
smtp_tls_security_level = encrypt
smtp_tls_wrappermode = yes
smtp_sasl_security_options = noanonymous

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

relayhost = [smtp.yandex.ru]:465

Создаем файл с логином-паролем:

sudo touch /etc/postfix/sasl_passwd
sudo chmod 0640 /etc/postfix/sasl_passwd

И пишем туда:

[smtp.yandex.ru]:465  root@codepoetry.ru:my-password

Тут важно отметить, что строка [smtp.yandex.ru]:465 должна быть одинаковой и там и там.

Потом не забудьте превратить файл в базу данных:

sudo postmap /etc/postfix/sasl_passwd

И сделаем релоад, чтобы постфикс подхватил изменения конфига

sudo systemctl reload postfix

Проверка

Дальше я открыл в одном окне логи

sudo tail -f /var/log/mail.log

А из другого отправлял письма

echo "This is the body of the email" | mail -s "This is the subject line" dima@gmail.com

Письмо не ушло, а в логе появилась ошибка 553 5.7.1 Sender address rejected: not owned by auth user. 1655646734-7knhhkCpkb-qEMS4B3Z (in reply to MAIL FROM command))

В статьях яндекса об этом говорится. По логу выше видно, что в поле FROM  стоит адрес from=dima@vm1.ru-central1.internal  — а должно быть root@codepoetry.ru, иначе яндекс не примет.

Поэтому я добавил в main.cf:

smtp_generic_maps = hash:/etc/postfix/generic

И создал файл /etc/postfix/generic:

@vm1.ru-central1.internal root@codepoetry.ru

Теперь для любых отправленных с сервера писем в момент их выхода будет подменяться адрес отправителя. Не забудем переиндексировать:

sudo postmap /etc/postfix/generic
sudo systemctl reload postfix

Другие возможные ошибки

503 5.5.4 Error: send AUTH command first. 1655644978-vxV6fiLXFy-MwN8PqpG (in reply to MAIL FROM command))

Вы забыли включить smtp_sasl_auth_enable = yes

SMTPS wrappermode (TCP port 465) requires setting "smtp_tls_wrappermode = yes", and "smtp_tls_security_level = encrypt" (or stronger)
тут говорящее название
status=deferred (delivery temporarily suspended: SASL authentication failed; cannot authenticate to server smtp.yandex.ru[77.88.21.158]: no mechanism available)
забыли прописать smtp_sasl_security_options = noanonymous
status=deferred (SASL authentication failed; server smtp.yandex.ru[77.88.21.158] said: 535 5.7.8 Error: authentication failed: This user does not have access rights to this service 1655646115-7Ko3u9UTap-ftNKo6bN)

Вот эта ошибка интересная и сначала поставила меня в тупик. Чтобы победить, нужно разрешить доступ почтовых программ в настройках почты:

Не очевидно, что imap влияет на возможность функционирования smtp.

Понравилась статья? Поделить с друзьями:
  • Ошибка почты 550 что это
  • Ошибка почты 550 relay not permitted
  • Ошибка почты 550 authentication required
  • Ошибка почты 400 bad request
  • Ошибка почтовый ящик на сервере не найден