Подтвердить что ты не робот

Ответ SMTP-сервера: 530 5.7.0 Сначала необходимо выполнить команду STARTTLS

Ответ SMTP-сервера: 530 5.7.0 Сначала необходимо выполнить команду STARTTLS

Я получаю это сообщение об ошибке при использовании функции mail() в файле сценария php...

Я использую SMTP-сервер Gmail и Gmail, используя STARTTLS, который является безопасным SSL и я уже использую эти команды в моем файле contact.php

ini_set("SMTP","smtp.gmail.com");
ini_set("sendmail_from","<email-address>@gmail.com>");

так, какую команду я могу использовать, чтобы включить STARTTLS или настроить в php, ini file??

4b9b3361

Ответ 1

Сначала убедитесь, что у вас установлена ​​поддержка SSL (найдите раздел "openssl" на выходе из phpinfo()).

Вы можете установить следующие параметры в вашем PHP.ini:

ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");

Ответ 2

Я знаю, что библиотека PHPMailer может обрабатывать такие SMTP-транзакции.

Кроме того, подделка sendmail с библиотекой sendmail-SSL должна выполнять эту работу.

Ответ 4

В моем случае Swift Mailer тоже не помог. Я нашел решение здесь: http://forum.powweb.com/showthread.php?t=73406 - поэтому после команды EHLO нужно отправить команду STARTTLS, включив криптографию с помощью stream_socket_enable_crypto( $connection, true, STREAM_CRYPTO_METHOD_TLS_CLIENT ); и снова команду EHLO, Только это позволило мне отправлять электронные письма с моим "упрямым" SMTP-сервером.

Ответ 6

У меня был ложный ответ на следующее:

fputs($connection, 'STARTTLS'.$newLine);

Оказывается, я использую неверную переменную соединения, поэтому мне просто пришлось ее изменить:

fputs($smtpConnect, 'STARTTLS'.$newLine);

Если использование TLS не забудьте поставить HELO до и после:

fputs($smtpConnect, 'HELO '.$localhost . $newLine);
$response = fgets($smtpConnect, 515);
if($secure == 'tls')
{
    fputs($smtpConnect, 'STARTTLS'.$newLine);
    $response = fgets($smtpConnect, 515);
stream_socket_enable_crypto($smtpConnect, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);

// Say hello again!
    fputs($smtpConnect, 'HELO '.$localhost . $newLine);
    $response = fgets($smtpConnect, 515);
}

Ответ 7

Я собираюсь поделиться своим путем, и это сработало для меня после реализации следующего:

Откройте файл Php.ini и заполните все значения в соответствующих полях, сняв ref из Настройки SMTP Gmail

Удалить комментарии из [почтовых функций] Заявления, которые являются инструкциями для сервера smtp и соответствуют их значениям.

Также SMTP-сервер sendmail является фальшивым сервером. Его ничего нет рядом с текстовым терминалом (попробуйте написать что-нибудь на нем: P). Он будет использовать gmail s, tp для отправки писем. Поэтому настройте его правильно, сопоставляя настройки SMTP Gmail:

smtp.gmail.com
Port: 587

Ответ 8

Я бы предложил вам перейти по этой ссылке.

https://www.php.net/manual/en/ref.mail.php

Хотя я не получил почту в Gmail, но, по крайней мере, она будет обслуживать первоначальные ошибки.

Благодарю вас

Ответ 9

Проблема решена,

Я отредактировал файл /etc/postfix/master.cf

и прокомментировал

-o smtpd_relay_restrictions=permit_sasl_authenticated,reject

и изменил строку с

-o smtpd_tls_security_level=encrypt 

в

-o smtpd_tls_security_level=may

И работал хорошо

Ответ 10

Blockquote

I then modified the php.ini file to use it (commented out the other lines):

[mail function]
; For Win32 only.
; SMTP = smtp.gmail.com
; smtp_port = 25

; For Win32 only.
; sendmail_from = <e-mail username>@gmail.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

Ignore the "For Unix only" comment, as this version of sendmail works for Windows.

You then have to configure the "sendmail.ini" file in the directory where sendmail was installed:

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
auth_username=<username>
auth_password=<password>
force_sender=<e-mail username>@gmail.com

http://byitcurious.blogspot.com.br/2009/04/solving-must-issue-starttls-command.html

> Blockquote