5

Я хочу отправить письмо из пакетного файла Windows. Вот мой код:

blat test.log -server smtp.gmx.com -to dest@gmail.com -f address@gmail.com -s "test mail" -u "address@gmail.com" -pw "password" -debug -log envois-mails.log -timestamp 

Вот ошибка, которую я получаю:

2014.07.23 14:07:26 (Wed): <<<getline<<< 535 Authentication credentials invalid
2014.07.23 14:07:26 (Wed): The SMTP server did not accept Auth PLAIN value.
Are your login userid and password correct?
2014.07.23 14:07:26 (Wed): >>>putline>>> AUTH LOGIN
2014.07.23 14:07:26 (Wed): <<<getline<<< 334 VXNlcm5hbWU6
2014.07.23 14:07:26 (Wed): >>>putline>>> b3Vzcy56YWltQGdtYWlsLmNvbQ==
2014.07.23 14:07:26 (Wed): <<<getline<<< 334 UGFzc3dvcmQ6
2014.07.23 14:07:26 (Wed): >>>putline>>> aG90bWFpbGhvdG1haWw=
2014.07.23 14:07:26 (Wed): <<<getline<<< 535 Authentication credentials invalid
2014.07.23 14:07:26 (Wed): The SMTP server did not accept Auth LOGIN PASSWD value.
2014.07.23 14:07:26 (Wed): >>>putline>>> QUIT
2014.07.23 14:07:26 (Wed): <<<getline<<< 221 gmx.com Service closing transmission channel

Есть ли у вас какие-либо идеи о том, как решить проблему?

Я использую Blat для отправки писем

2 ответа2

2

Я думаю, что вы можете легко сделать это через Powershell.

Следуй этим шагам:

Шаг 1 - Откройте CMD (Запуск от имени администратора)
Шаг 2 - Введите Powershell (нажмите Enter)
Шаг 3. Сначала скопируйте приведенный ниже код в блокнот

$EmailFrom = “Your email Address” $EmailTo = “Recipients email Address”
$Subject = “The subject of your email”
$Body = “This is just a test mail to verify the working of CMD”
$SMTPServer = “smtp.gmail.com”
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential(“username”, “password”);
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

Шаг 4 - измените свой адрес электронной почты на адрес электронной почты отправителя
Шаг 5 - Изменить адрес электронной почты получателя
Шаг 6 - Замените тему и основной текст в соответствии с вашими потребностями
Шаг 7 - Замените "username" и "password" вашими учетными данными.
Шаг 8 - Скопируйте приведенный выше код и вставьте в Windows Powershell.

Это, безусловно, будет работать для Gmail. Для других вы можете попробовать изменить SMTP-сервер и данные клиента.

1

Как и другие догадывались, это связано с тем, что Gmail требует подключения по TLS/SSL, и, как я вижу, Blat не поддерживает это.

Я работал над этим с помощью Stunnel, который работает очень хорошо. Он устанавливает туннель TLS/SSL (в данном случае для gmail SMTP), через который приложения, не поддерживающие TLS/SSL, могут отправлять электронные письма. Я также использую его для отправки электронной почты (через gmail) из пары других приложений, которые не поддерживают TLS/SSL. TBH Я не помню конфигурацию, но это было довольно просто.

Вы по-прежнему используете свои учетные данные gmail, но заменяете свой stunnel-сервер (localhost? - он настроен на его собственный сервер Linux и используется его IP-адрес, но он кроссплатформенный, поэтому я предполагаю, что он может использовать localhost в Windows).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .