Error data not accepted from server

Notice: Error: DATA not accepted from server (SMTP PROBLEM)

Notice: Error: DATA not accepted from server (SMTP PROBLEM)


Hello.
I’ll be brief.
My spec: Windows 7 64bits with xampp 1.7.7(Apache 2.2.21, MySQL 5.5.16, PHP 5.3.8 )

-OC 1.5.1.3 version has a problem with smtp

Code: Select all

Notice: Error: DATA not accepted from server! in C:xampphtdocsprivatesystemlibrarymail.php on line 388

This error message appears in all email requests(contact, aprove account, order, etc). It has something to do with encoding I guess.

Line 388:

Code: Select all

				if (substr($reply, 0, 3) != 250) {
					trigger_error('Error: DATA not accepted from server!');
					exit();						
				}

Please help!

PS: I’ve tried with all email providers and same error occurs(gmail,yahoo, local mail sever, hmailserver,postfix etc etc)


…some things are never ment to be…


User avatar


Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by i2Paq » Thu Nov 10, 2011 7:39 pm

Are you running a local smtp server?



User avatar


Location —
Winkel — The Netherlands

Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by ciprianrpp » Thu Nov 10, 2011 8:35 pm

i2Paq wrote:Are you running a local smtp server?

hello.

I’ve specified in my post that I’ve tried all different smtp providers including «local mail server»

the problem is with the new php 5.3.8 version (xampp 1.7.7) (it is something from the opencart coding not compatible with php 5.3.8 )
on php 5.3.1 (xampp 1.7.3) works great


…some things are never ment to be…


User avatar


Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by ciprianrpp » Thu Nov 10, 2011 10:31 pm

after disabling these 2 lines, the mail arrives but EMPTY(from, to,replyto,subject, mail body etc, all empty)

Code: Select all

				$message = str_replace("rn", "n",  $header . $message);
				$message = str_replace("r", "n", $message);

I have used the default OC 1.5.1.3 with the contact form

this are the only lines from header of email:

Code: Select all

Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

…some things are never ment to be…


User avatar


Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by i2Paq » Fri Nov 11, 2011 1:32 am

You disabled the header and body of the message, no wonder it is empty.

It could be a security setup that prevent your «server» from sending emails with a header and body.
It could be seen as «spam».

Why not setup on a real server at a hoster and not the setup at home you have now?

btw. this is NOT and OpenCart issue you are having.



User avatar


Location —
Winkel — The Netherlands

Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by ciprianrpp » Fri Nov 11, 2011 8:54 pm

dear sir,

please read all my post with attention because you didn’t read the important parts.
i’ll quote and bold the text that you did not read.

i2Paq wrote:Are you running a local smtp server?

hello.

I’ve specified in my post that I’ve tried all different smtp providers including «local mail server»

the problem is with the new php 5.3.8 version (xampp 1.7.7) (it is something from the opencart coding not compatible with php 5.3.8 )
on php 5.3.1 (xampp 1.7.3) works grea
t

LE:
tested now on live dedicated hosting with php 5.3.8 . SAME PROBLEM!!

switched to another shared hosting with php 5.3.2 and there is no problem!

My conclusion: that OC mail class is NOT compatible with php 5.3.8 (latest) and it has something to do with UTF8


…some things are never ment to be…


User avatar


Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by ciprianrpp » Sat Nov 12, 2011 12:06 am

SOLVED

the OC 1.5.1.3 mail.php file (located in system/library/):

Code: Select all

$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline;

the fix is to add another n to separate header, so the correct code is:

Code: Select all

	
$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline . $this->newline;

cheers


…some things are never ment to be…


User avatar


Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by robinhood1995 » Tue Jan 03, 2012 2:14 pm

ciprianrpp wrote:SOLVED

the OC 1.5.1.3 mail.php file (located in system/library/):

Code: Select all

$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline;

the fix is to add another n to separate header, so the correct code is:

Code: Select all

	
$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline . $this->newline;

cheers

hi,
thanks for this fix as exchange 2010 does need the following:
354 Start mail input; end with <CRLF>.<CRLF>

Bit I still get the line 388 error, any ideas as my Exchange is setup to relay internally.

thanks
Steve

Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by SelfMan » Tue Jan 10, 2012 10:17 am

Check the smtp log on your Exchange server. It might bring more light in to the problem.

Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by jhough76 » Mon Feb 27, 2012 11:24 am

I just wanted to say thank you. I encountered the same issue and added the newline as instructed. It worked like a charm!!!

Thanks again
Jack




Joined

Mon Feb 27, 2012 11:23 am

Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by leveltgp » Fri Jul 27, 2012 7:03 pm

Hello everyone I have the same problem ,i put the new code in mail.php , the contact form works fine but from orders , new accounts it does not send any email. php version 5.2.17 opencart 1.5.3.1 please any idea?


Level Technical Group
Web & IT Services
http://www.leveltgp.gr
https://www.levelhosting.net
Επαγγελματικές Υπηρεσίες σχεδίασης και φιλοξενίας Ιστοσελίδων

Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by robinhood1995 » Mon May 27, 2013 3:32 pm

robinhood1995 wrote:

hi,
thanks for this fix as exchange 2010 does need the following:
354 Start mail input; end with <CRLF>.<CRLF>

Bit I still get the line 388 error, any ideas as my Exchange is setup to relay internally.

thanks
Steve

I have found the work around for exchange which does not even require any mail.php modifications.

Exchange 2010 checks for the dot «.» at the end of the message and the way around it is to disable the content filtering under the anti-spam in the hub transport.

hope this helps….

Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by Daniel Ribeiro » Wed Nov 19, 2014 12:17 am

So, I had this problem in my store hosted in Dreamhost.

They suddenly changed the way SMTP servers handle messages. Now they don’t accept mail sent from addresses not hosted in they servers, so an user with an e-mail @hotmail.com cannot send e-mail using DreamHost servers.

The mail.php class use the e-mail from contacter in the «FROM» field of the E-mail, so Dreamhost now are regecting theses e-mails.

The solution is change the FROM field to the username of the SMTP autentication. In Dreamhost, the username of SMTP auth is the e-mail itself.

So, all I did was replace this (in Line 93):

Code: Select all

$header .= 'From: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->sender. '>' . $this->newline;

to this:

Code: Select all

$header .= 'From: ' . '=?UTF-8?B?' . base64_encode($this->username) . '?=' . '<' . $this->username . '>' . $this->newline;

Hope this helps.




Joined

Wed Nov 19, 2014 12:11 am

Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by Roz » Wed Jul 06, 2016 4:21 am

Daniel Ribeiro wrote:So, I had this problem in my store hosted in Dreamhost.

They suddenly changed the way SMTP servers handle messages. Now they don’t accept mail sent from addresses not hosted in they servers, so an user with an e-mail @hotmail.com cannot send e-mail using DreamHost servers.

Hope this helps.

Yes, It’s helps me with SPARKPOST. Sparkpost not sending email where FROM was not from registered domain in they system.

Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by wsrpint » Fri Jan 27, 2017 12:52 pm

By changing SMTP Timeout to 60 seconds, I was able to resolve this issue. Obviously that’s too long, but your server’s negotiation with Gmail is taking longer than expected.

When you encounter that issue, it is because the server hasn’t received a reply before the timeout period.




Joined

Fri Jan 27, 2017 12:51 pm

Re: Notice: Error: DATA not accepted from server (SMTP PROB


Post

by mohammedrauff » Mon Feb 25, 2019 12:39 am

wsrpint wrote: ↑

Fri Jan 27, 2017 12:52 pm


By changing SMTP Timeout to 60 seconds, I was able to resolve this issue. Obviously that’s too long, but your server’s negotiation with Gmail is taking longer than expected.

When you encounter that issue, it is because the server hasn’t received a reply before the timeout period.

This is the best answer and it works like charm Thank You very much

Who is online

Users browsing this forum: Semrush [Bot] and 21 guests

$value) {
if ($value) {
$this->$key = $value;
}
}
}

public function setTo($to) {
$this->to = html_entity_decode($to, ENT_QUOTES, ‘UTF-8’);
}

public function setFrom($from) {
$this->smtp_username = html_entity_decode($from, ENT_QUOTES, ‘UTF-8’);
}

public function setSender($sender) {
$this->sender = html_entity_decode($sender, ENT_QUOTES, ‘UTF-8’);
}

public function setReplyTo($reply_to) {
$this->replyto = html_entity_decode($reply_to, ENT_QUOTES, ‘UTF-8’);
}

public function setSubject($subject) {
$this->subject = html_entity_decode($subject, ENT_QUOTES, ‘UTF-8’);
}

public function setText($text) {
$this->text = html_entity_decode($text, ENT_QUOTES, ‘UTF-8’);
}

public function setHtml($html) {
$this->html = html_entity_decode($html, ENT_QUOTES, ‘UTF-8’);
}

public function addAttachment($filename) {
$this->attachments[] = $filename;
}

public function send() {
if (!$this->to) {
trigger_error(‘Error: E-Mail to required!’);
exit();
}

if (!$this->smtp_username) {
trigger_error(‘Error: E-Mail from required!’);
exit();
}

if (!$this->sender) {
trigger_error(‘Error: E-Mail sender required!’);
exit();
}

if (!$this->subject) {
trigger_error(‘Error: E-Mail subject required!’);
exit();
}

if ((!$this->text) && (!$this->html)) {
trigger_error(‘Error: E-Mail message required!’);
exit();
}

if (!$this->replyto) {
$this->setReplyTo($this->sender);
}

if (is_array($this->to)) {
$to = implode(‘,’, $this->to);
} else {
$to = $this->to;
}

$boundary = ‘—-=_NextPart_’ . md5(time());

$header = ‘MIME-Version: 1.0’ . $this->newline;

if ($this->protocol != ‘mail’) {
$header .= ‘To: ‘ . $to . $this->newline;
$header .= ‘Subject: ‘ . ‘=?UTF-8?B?’ . base64_encode($this->subject) . ‘?=’ . $this->newline;
}

$header .= ‘Date: ‘ . date(‘D, d M Y H:i:s O’) . $this->newline;
$header .= ‘From: =?UTF-8?B?’ . base64_encode($this->sender) . ‘?=’ . ‘ <‘ . $this->smtp_username . ‘>’ . $this->newline;
//$header .= ‘Reply-To: =?UTF-8?B?’ . base64_encode($this->replyto) . ‘?=’ . ‘ <‘ . $this->smtp_username . ‘>’ . $this->newline;
if (!$this->replyto) {
$header .= ‘Reply-To: =?UTF-8?B?’ . base64_encode($this->sender) . ‘?=’ . ‘ <‘ . $this->smtp_username . ‘>’ . $this->newline;
} else {
$header .= ‘Reply-To: =?UTF-8?B?’ . base64_encode($this->replyto) . ‘?=’ . ‘ <‘ . $this->replyto . ‘>’ . $this->newline;
}
$header .= ‘Return-Path: ‘ . $this->smtp_username . $this->newline;
$header .= ‘X-Mailer: PHP/’ . phpversion() . $this->newline;
$header .= ‘Content-Type: multipart/related; boundary=»‘ . $boundary . ‘»‘ . $this->newline . $this->newline;

if (!$this->html) {
$message = ‘—‘ . $boundary . $this->newline;
$message .= ‘Content-Type: text/plain; charset=»utf-8″‘ . $this->newline;
$message .= ‘Content-Transfer-Encoding: 8bit’ . $this->newline . $this->newline;
$message .= $this->text . $this->newline;
} else {
$message = ‘—‘ . $boundary . $this->newline;
$message .= ‘Content-Type: multipart/alternative; boundary=»‘ . $boundary . ‘_alt»‘ . $this->newline . $this->newline;
$message .= ‘—‘ . $boundary . ‘_alt’ . $this->newline;
$message .= ‘Content-Type: text/plain; charset=»utf-8″‘ . $this->newline;
$message .= ‘Content-Transfer-Encoding: 8bit’ . $this->newline . $this->newline;

if ($this->text) {
$message .= $this->text . $this->newline;
} else {
$message .= ‘This is a HTML email and your email client software does not support HTML email!’ . $this->newline;
}

$message .= ‘—‘ . $boundary . ‘_alt’ . $this->newline;
$message .= ‘Content-Type: text/html; charset=»utf-8″‘ . $this->newline;
$message .= ‘Content-Transfer-Encoding: 8bit’ . $this->newline . $this->newline;
$message .= $this->html . $this->newline;
$message .= ‘—‘ . $boundary . ‘_alt—‘ . $this->newline;
}

foreach ($this->attachments as $attachment) {
if (file_exists($attachment)) {
$handle = fopen($attachment, ‘r’);

$content = fread($handle, filesize($attachment));

fclose($handle);

$message .= ‘—‘ . $boundary . $this->newline;
$message .= ‘Content-Type: application/octet-stream; name=»‘ . basename($attachment) . ‘»‘ . $this->newline;
$message .= ‘Content-Transfer-Encoding: base64’ . $this->newline;
$message .= ‘Content-Disposition: attachment; filename=»‘ . basename($attachment) . ‘»‘ . $this->newline;
$message .= ‘Content-ID: <‘ . basename(urlencode($attachment)) . ‘>’ . $this->newline;
$message .= ‘X-Attachment-Id: ‘ . basename(urlencode($attachment)) . $this->newline . $this->newline;
$message .= chunk_split(base64_encode($content));
}
}

$message .= ‘—‘ . $boundary . ‘—‘ . $this->newline;

if ($this->protocol == ‘mail’) {
ini_set(‘sendmail_from’, $this->smtp_username);

if ($this->parameter) {
mail($to, ‘=?UTF-8?B?’ . base64_encode($this->subject) . ‘?=’, $message, $header, $this->parameter);
} else {
mail($to, ‘=?UTF-8?B?’ . base64_encode($this->subject) . ‘?=’, $message, $header);
}
} elseif ($this->protocol == ‘smtp’) {
$is_tls = substr($this->smtp_hostname, 0, 3) == ‘tls’;
$hostname = $is_tls ? substr($this->smtp_hostname, 6) : $this->smtp_hostname;
$handle = fsockopen($hostname, $this->smtp_port, $errno, $errstr, $this->smtp_timeout);

if (!$handle) {
trigger_error(‘Error: ‘ . $errstr . ‘ (‘ . $errno . ‘)’);
exit();
} else {
if (substr(PHP_OS, 0, 3) != ‘WIN’) {
socket_set_timeout($handle, $this->smtp_timeout, 0);
}

while ($line = fgets($handle, 515)) {
if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

fputs($handle, ‘EHLO ‘ . getenv(‘SERVER_NAME’) . «rn»);

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if (substr($reply, 0, 3) != 250) {
trigger_error(‘Error: EHLO not accepted from server!’);
exit();
}

if ($is_tls) {
fputs($handle, ‘STARTTLS’ . «rn»);

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if (substr($reply, 0, 3) != 220) {
trigger_error(‘Error: STARTTLS not accepted from server!’);
exit();
}

stream_socket_enable_crypto($handle, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
}

if (!empty($this->smtp_username) && !empty($this->smtp_password)) {
fputs($handle, ‘EHLO ‘ . getenv(‘SERVER_NAME’) . «rn»);

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if (substr($reply, 0, 3) != 250) {
trigger_error(‘Error: EHLO not accepted from server!’);
exit();
}

fputs($handle, ‘AUTH LOGIN’ . «rn»);

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if (substr($reply, 0, 3) != 334) {
trigger_error(‘Error: AUTH LOGIN not accepted from server!’);
exit();
}

fputs($handle, base64_encode($this->smtp_username) . «rn»);

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if (substr($reply, 0, 3) != 334) {
trigger_error(‘Error: Username not accepted from server!’);
exit();
}

fputs($handle, base64_encode($this->smtp_password) . «rn»);

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if (substr($reply, 0, 3) != 235) {
trigger_error(‘Error: Password not accepted from server!’);
exit();
}
} else {
fputs($handle, ‘HELO ‘ . getenv(‘SERVER_NAME’) . «rn»);

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if (substr($reply, 0, 3) != 250) {
trigger_error(‘Error: HELO not accepted from server!’);
exit();
}
}

if ($this->verp) {
fputs($handle, ‘MAIL FROM: <‘ . $this->smtp_username . ‘>XVERP’ . «rn»);
} else {
fputs($handle, ‘MAIL FROM: <‘ . $this->smtp_username . ‘>’ . «rn»);
}

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if (substr($reply, 0, 3) != 250) {
trigger_error(‘Error: MAIL FROM not accepted from server!’);
exit();
}

if (!is_array($this->to)) {
fputs($handle, ‘RCPT TO: <‘ . $this->to . ‘>’ . «rn»);

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
trigger_error(‘Error: RCPT TO not accepted from server!’);
exit();
}
} else {
foreach ($this->to as $recipient) {
fputs($handle, ‘RCPT TO: <‘ . $recipient . ‘>’ . «rn»);

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
trigger_error(‘Error: RCPT TO not accepted from server!’);
exit();
}
}
}

fputs($handle, ‘DATA’ . «rn»);

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if (substr($reply, 0, 3) != 354) {
trigger_error(‘Error: DATA not accepted from server!’);
exit();
}

// According to rfc 821 we should not send more than 1000 including the CRLF
$message = str_replace(«rn», «n», $header . $message);
$message = str_replace(«r», «n», $message);

$lines = explode(«n», $message);

foreach ($lines as $line) {
$results = str_split($line, 998);

foreach ($results as $result) {
if (substr(PHP_OS, 0, 3) != ‘WIN’) {
fputs($handle, $result . «rn»);
} else {
fputs($handle, str_replace(«n», «rn», $result) . «rn»);
}
}
}

fputs($handle, ‘.’ . «rn»);

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if (substr($reply, 0, 3) != 250) {
trigger_error(‘Error: DATA not accepted from server!’);
exit();
}

fputs($handle, ‘QUIT’ . «rn»);

$reply = »;

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ‘ ‘) {
break;
}
}

if (substr($reply, 0, 3) != 221) {
trigger_error(‘Error: QUIT not accepted from server!’);
exit();
}

fclose($handle);
}
}
}
}

SMPTHOST = tls://smtp.gmail.com
PORT = 587

This error occurs if you’re sending via SMTP. The SMTP server rejects the mail for several reasons:

Your server dosen’t allow different sender and usernames

Some servers require that the From email address is the same as the email address used to authenticate. Check your from name and match it to the username you use to login to your SMTP server.

The file size of your message is to large

Some servers reject a message if the body is too large. HTML emails in general are bigger than normal text messages but you should try to decrease the size by removing some content or disable embedded images.

The receiver is blacklisted or blocked

Sometimes certain email addresses are blocked and to prevent getting blacklisted the server rejects your message. Best resolution is to choose a different delivery method.

It’s a temporary issue

Sometimes the email server responds with this error if some limits have reached or you’re sending “too fast”. Please pause your campaigns for a while and try again later.

If you are sending via Amazon SES you must have verified the from, reply-to and bounce address you are using in your mailings.

Здравствуйте.

подскажите пжл. при отправке письма с формы контакта ругается. 

через функции mail выводит ошибка в журнале 

2019-10-06 12:32:41 - PHP Warning:  mail() has been disabled for security reasons in /home/домен/public_html/system/library/mail.php on line 163
2019-10-06 12:32:41 - PHP Warning:  explode() expects parameter 2 to be string, array given in /home/домен/public_html/system/storage/modification/catalog/controller/information/contact.php on line 33
2019-10-06 12:32:41 - PHP Warning:  Invalid argument supplied for foreach() in /home/домен/public_html/system/storage/modification/catalog/controller/information/contact.php on line 35

содержание файла mail.php строка 163

mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header);

содержание файла contact.php строка 33

$emails = explode(',', $this->config->get('config_mail_alert'));

содержание файла contact.php строка 35

foreach ($emails as $email) {

Версия Opencart.CMS 2.3.0.2.5

————————

Если настроит SMTP то ошибка 500

SMTP Хост: ssl://server1.ahost.uz
SMTP логин: robot@домен.uz
SMTP пароль: *****
465

Заранее спасибо за ответ.


  1. sanyok

    sanyok
    Новичок

    Сообщения:
    20
    Симпатии:
    1

    Добрый вечер знатоки!

    Домен подключен к ЯндексКоннект

    настройки SMTP

    SMTP Имя сервера: ssl://smtp.yandex.ru
    SMTP Логин: info@domen.ru
    SMTP Пароль: *****
    SMTP Порт: 465
    SMTP Таймаут: 10

    Во вкладке Магазин поставил тот же емайл что настроен в SMTP info@domen.ru

    при отправки сообщение с формы контакты выдаёт ошибку:

    Warning: fsockopen(): unable to connect to ssl://smtp.yandex.ru:465 (Network is unreachable) in /home/domen.ru/public_html/system/library/mail/smtp.php on line 88

    в строке файла smtp.php


    $handle fsockopen($hostname$this->smtp_port$errno$errstr$this->smtp_timeout);

    делаю проверку на подключение к серверу


        $socket fsockopen("ssl://smtp.yandex.ru"465$errno$errstr10);
        if(!
    $socket)
        {
            echo 
    "ERROR: smtp.yandex.ru 465 - $errstr ($errno)<br>n";
        }
        else
        {
            echo 
    "SUCCESS: smtp.yandex.ru 465 - ok<br>n";
        }


    и дает ошибку
    ERROR: smtp.yandex.ru 465 — Network is unreachable (101)

    Подскажите пжл. OpenCard 3.0.3.7 (rs.1) как решить проблему?

  2. Warning: fsockopen(): unable to connect to ssl://smtp.yandex.ru:465 (Network is unreachable)

    Вот это отправьте хотеру и получите развернутый ответ.


  3. sanyok

    sanyok
    Новичок

    Сообщения:
    20
    Симпатии:
    1

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

    Спасибо заранее

    error.png

  4. Если шаблон не стандартный или сильно изменена форма обратной связи, то пробуем удалить в папке system файл tweak-54fz.ocmod.xml и обновляем кеш модификаторов.


  5. sanyok

    sanyok
    Новичок

    Сообщения:
    20
    Симпатии:
    1

    Шаблон стандартный, не сильно изменён.
    и в Журнале ошибок тоже пусть.


  6. kwakin

    kwakin
    Пользователь

    Сообщения:
    61
    Симпатии:
    3

    и зачем все это ?
    делаете почту хостинга
    на хостинге настройте пересылку на яндекс


  7. sanyok

    sanyok
    Новичок

    Сообщения:
    20
    Симпатии:
    1

    Fatal error: Uncaught Exception: Error: DATA not accepted from server! in /home/domen.ru/public_html/system/library/mail/smtp.php:241 Stack trace: #0 /home/domen.ru/public_html/system/library/mail/smtp.php(209): MailSmtp->handleReply(Resource id #72, 250, 'Error: DATA not...') #1 /home/domen.ru/public_html/system/library/mail.php(142): MailSmtp->send() #2 /home/domen.ru/public_html/storage/modification/catalog/controller/information/contact.php(25): Mail->send() #3 /home/domen.ru/public_html/storage/modification/system/engine/action.php(79): ControllerInformationContact->index() #4 /home/domen.ru/public_html/catalog/controller/startup/router.php(25): Action->execute(Object(Registry)) #5 /home/domen.ru/public_html/storage/modification/system/engine/action.php(79): ControllerStartupRouter->index() #6 /home/domen.ru/public_html/system/engine/router.php(67): Action->execute(Object(Registry)) #7 /home/domen.ru/public_html/system/engine/router.php(56): Router->execute(Object(Action)) #8 /home/domen.ru/public_html/system/frame in /home/domen.ru/public_html/system/library/mail/smtp.php on line 241

  8. sanyok

    sanyok
    Новичок

    Сообщения:
    20
    Симпатии:
    1

    Всё решил проблему. всем спасибо

    В файле catalogcontrollerinformationcontact.php


    $mail->setFrom($this->request->post['email']);

    меняем на


    $mail->setFrom($this->config->get('config_email'));

  9. Кстати да. Я в коммитах это видел и подумал, странное решение и благополучно забыл. А ведь буквально в 3.0.3.6 было по другому (как написали)


OpenCart Russia Форум

/public/img/default_profile_50.png

Статья была полезной?

Если сообщение не было доставлено получателю, то ему будет присвоен один из следующих статусов:

  • Отменено/Запрещено — если отправка сообщения ограничена со стороны внутреннего функционала GetCourse. Например, пользователь забанен, отписался от категории или перестал удовлетворять условию рассылки.
  • Ошибка — если сообщение было отклонено почтовым сервером. В таком случае в аккаунт поступит отчет с текстовым описанием ошибки. Проанализировав ошибку, можно понять причину, по которой сообщение не было доставлено.

В статье разберем основные виды ошибок при отправке email-рассылок и рекомендации по работе с ними.

<h4>Пример возвращенной ошибки. В деталях ошибки видим, что почтовый ящик пользователя был переполнен.</h4>

Пример возвращенной ошибки. В деталях ошибки видим, что почтовый ящик пользователя был переполнен.

Ссылка на это место страницы:
#main

Текстовое описание одной и той же ошибки может отличаться в зависимости от почтового сервиса, который ее возвращает. Например ошибки:

  • Mailbox does not exist. We do not relay
  • No such user!

Означают, что эл. адрес пользователя не существует.

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

  • Ошибки в названии электронных ящиков
  • Ошибки в названии домена или его настройках
  • Почтовый ящик пользователя переполнен или заблокирован
  • Попадание в спам на почтовом сервисе
  • Грейлистинг (серый список)
  • Ошибки, связанные с неправильной настройкой доменной почты
  • Попадание IP-адреса в черный список

Чтобы быстро найти значение вашей ошибки в статье, воспользуйтесь поиском по странице (ctrl+F). Для этого введите значение ошибки, как показано в слайдере ниже:

Ссылка на это место страницы:
#incorrect_address

Примеры ошибок:

  • Mailbox does not exist. We do not relay
  • No such user!
  • Unknown user
  • Recipient address rejected: User unknown in local recipient table
  • The email account that you tried to reach does not exist
  • sorry, no mailbox here by that name
  • no mailbox by that name is currently available
  • Requested action not taken: mailbox unavailable
  • Message was not accepted — invalid mailbox
  • Bad recipient address syntax
  • Bad address mailbox syntax
  • No correct recipients
  • We do not relay without RFC2554 authentication

Рекомендации:
Попробуйте связаться с получателем альтернативным способом связи, чтобы уточнить корректный электронный адрес. Затем поменяйте email в карточке. Как это сделать, смотрите в слайдере:

Ссылка на это место страницы:
#receive

Ссылка на это место страницы:
#specific

Ссылка на это место страницы:
#no_connection

  • MX lookup failed for […]

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

Если не удалось связаться с почтовым сервером, то вернутся следующие ошибки:

  • Called MAIL FROM without being connected
  • SMTP connect() failed
  • RCPT TO command failed

Причины и рекомендации:

  • Опечатки в электронных адресах
  • Ограничения со стороны корпоративных доменов
  • Общие рекомендации по базе электронных адресов

Ссылка на это место страницы:
#errors

При регистрации пользователь может указать электронный адрес с опечаткой. Сообщение на такой адрес доставить не получиться. Наиболее часто встречающимися опечатками являются:

  • mail.ri — вместо mail.ru
  • gmail.ru — вместо gmail.com
  • yndex.ru — вместо yandex.ru

Рекомендации:

Периодически проверять базу пользователей на опечатки в электронных адресах и менять им почту.

Обратите внимание: электронная почта пользователя указана корректно, если она подтверждена. То есть чем больше % пользователей в вашей клиентской базе, которые подтвердили свою почту, тем меньше будет ошибок в адресах при отправке рассылок «по адресам, где дано разрешение на рассылки». И соответственно, выше доставляемость сообщений.

Ссылка на это место страницы:
#corp

Корпоративные ящики — это почтовые ящики с доменами, принадлежащими университетам, магазинам, государственным предприятиям и предназначенные только для их сотрудников. Например, @hh.ru.

Корпоративные ящики чаще всего имеют свои почтовые сервера, индивидуальные спам-фильтры или другие настройки, которые могут влиять на доставляемость сообщений.

Рекомендации:

  • Самостоятельно связаться с владельцами корпоративного домена, привести пример ошибки и уточнить, почему ваши сообщения не принимаются.
  • Если пользователей с таким доменом в аккаунте немного, то наиболее оптимальным решением будет узнать у пользователя альтернативную почту на более популярном сервисе (gmail.com, yandex.ru, mail.ru) и сменить ее в карточке пользователя.

Ссылка на это место страницы:
#popular

В качестве электронных почт пользователей рекомендуем использовать наиболее популярные почтовые сервисы, такие как mail.ru, gmail.com или yandex.ru. Это очень распространённые и надёжные почтовые сервисы с высокой доставляемостью сообщений.

Важно: Для снижения рисков попадания рассылок в спам отправляйте рассылки «по адресам, где дано разрешение на рассылки». Такие пользователи предоставили прямое согласие на получение рассылок, а их адреса точно не содержат ошибок. Поэтому важно не только собирать базу качественных электронных адресов, но и подтверждать их с помощью письма DOI.

Ссылка на это место страницы:
#temp

Также не рекомендуем использовать в качестве электронных адресов временные почтовые ящики. Временный ящик — ящик, который не требует регистрации и позволяет принимать электронные письма, которые будут удалены через определенный срок. Например, @yopmail.com или @maildrop.cc.

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

Важно: вход во временные ящики осуществляется без пароля, поэтому их содержимое может просмотреть любой пользователь. Подобные электронные почты не рекомендуется использовать в качестве почт пользователей и сотрудникам (например, для тестирования).

Рекомендации:

Отписывать от рассылок или удалять из базы пользователей с временными почтами.

Ссылка на это место страницы:
#overflowing_box

Примеры ошибок, возвращающихся при отправке на переполненные ящики:

  • Mailbox size limit exceeded.
  • Mailbox size exceeded
  • User is overquota
  • The email account that you tried to reach is over quota

Примеры ошибок, возвращающихся при отправке на заблокированные ящики:

  • Mailbox […] is locked due to inactivity for more than […] months
  • Аccess to this account (user) […] is disabled
  • Mailbox is disabled

Причины:

Подобные ошибки означают, что в почтовом ящике получателя нет места, чтобы принять ваше сообщение. Чаще всего это происходит потому, что получатель редко пользуется ящиком и ящик переполняется рассылками. Подобные адреса также могут быть преобразованы в спам-ловушки, отправка на которые приводит к значительному ухудшению репутации отправителя.

Ссылка на это место страницы:
#disabled

Рекомендации:

Попробуйте связаться с получателем альтернативным способом связи и сообщить о проблеме. Если связаться не удается, вы можете отписать пользователя от получения рассылок. Рекомендуется периодически отписывать от рассылок пользователей, которые не читают ваших сообщений.

Ссылка на это место страницы:
#spam

Примеры попадания в спам:

  • IP […] Our system has detected an unusual rate of unsolicited mail originating from your IP address. To protect our users from spam, mail sent from your IP address has been temporarily rate limited — такая ошибка возвращается почтовым сервисом Gmail в случае если Google заподозрил отправку слишком большого числа подозрительных писем (спама) с IP адреса отправителя. В этом случае Google включает временное ограничение на количество принимаемых писем.
  • Message rejected under suspicion of SPAM
  • Client host […] blocked using spamsource.mail.yandex.net
  • Blocked by spam statistics
  • 550 spam message discarded/rejected

Причины:

При отправке сообщений из аккаунта вероятнее всего не были соблюдены рекомендации для высокой доставляемости. Например, не производился прогрев отправляющего домена или велись рассылки по базе пользователей, которые не давали своего согласия на их получения.

Ссылка на это место страницы:
#graylisting

Примеры ошибок:

  • Greylisting in action, please come back later
  • Greylisted, try again after some time
  • Greylisted, try again in 180 seconds
  • Sorry, the service is currently unavailable. Please come back later
  • Temporary local problem — please try later
  • Try again later

Грейслистинг (серые списки) — это способ автоматической блокировки спама. Принцип работы данного способа заключается в следующем: если почтовому сервису кажется подозрительным принимаемое им письмо, то он может не принять его и попросить переотправить сообщение позже.

Рекомендации:

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

Однако если письмо после 5 попыток переотправки снова вернулось с ошибкой, система фиксирует текст ошибки и больше не делает попыток переотправки. В этом случае письмо можно переотправить через некоторое время вручную.

Ссылка на это место страницы:
#mail_settings

  • non-local sender verification failed — обычно такая ошибка возвращается почтовым сервисом Gmail или Mail.ru. При появлении данной ошибки необходимо проверить корректность SPF, DKIM и MX в DNS-зоне домена, с которого осуществляется отправка рассылок.
  • Can’t verify […] sender. Check your DNS configuration — при появлении данной ошибки необходимо проверить корректность SPF и DKIM в DNS-зоне домена, с которого происходит отправка почты.
  • sender domain SPF exact match mandatory for IP […]ошибка в SPF-записи домена, с которого происходит отправка письма. Необходимо проверить корректность SPF-записи, или что присутствует только одна SPF-запись.
  • This message was not accepted due to domain […] owner DMARC policy (RFC 7489) — сообщение было заблокировано из-за строгой политики DMARC почтового сервиса. Подробнее о настройке DMARC на GetCourse, читайте в отдельной статье.

Ссылка на это место страницы:
#IP_block

  • rejected because IP[…] is in a blacklist-dns at […]
  • Access denied, banned sending IP […]
  • Connection closed. IP […] is listed in Blacklist
  • [E-mail] blacklisted by […]

При получении подобных ошибок обратитесь к нам в техническую поддержку для дополнительной консультации.

Мы разобрали типичные ошибки при отправке email рассылок. Если ошибки возникают при отправке другими транспортами, рекомендации по их решению вы найдете в следующих статьях:

  • Telegram
  • SMS
  • WhatsApp Business
  • ВКонтакте
  • Viber
  • Facebook*

*принадлежит компании Meta, признанной экстремистской организацией и запрещенной в Российской Федерации.

Я установил новый Opencart 2.3.0.2 на Inmotionhosting со всеми настройками по умолчанию, кроме настроек MAIL, которые я пробовал много разных комбинаций. Хотя это показывает "Error: DATA not accepted from server!", но он успешно отправляет почту!

Центр поддержки хостинга говорит, что все в порядке, так что это должно быть проблемой кодирования!

Настройка почты:

Mail Protocol: SMTP
Mail Parameters: -fnoreply@mywebsite.com
SMTP Hostname: mail.mywebsite.com
SMTP Username: noreply@mywebsite.com
SMTP Password: ********
SMTP Port: 587
SMTP Timeout: 5

Полная информация об ошибке:

Fatal error:  Uncaught exception 'Exception' with message 'Error: DATA not accepted from server!' in /home/mywebsite/public_html/mywebsite.com/oc/system/library/mail.php:409
Stack trace:
#0 /home/mywebsite/public_html/mywebsite.com/oc/catalog/model/account/customer.php(81): Mail->send()
#1 [internal function]: ModelAccountCustomer->addCustomer(Array)
#2 /home/mywebsite/public_html/mywebsite.com/oc/system/engine/loader.php(178): call_user_func_array(Array, Array)
#3 [internal function]: Loader->{closure}(Array, Array)
#4 /home/mywebsite/public_html/mywebsite.com/oc/system/engine/proxy.php(25): call_user_func_array(Object(Closure), Array)
#5 /home/mywebsite/public_html/mywebsite.com/oc/catalog/controller/account/register.php(21): Proxy->__call('addCustomer', Array)
#6 /home/mywebsite/public_html/mywebsite.com/oc/catalog/controller/account/register.php(21): Proxy->addCustomer(Array)
#7 [internal function]: ControllerAccountRegister->index()
#8 /home/mywebsite/public_html/mywebsite.com/oc/system/engine/action.php(51): call_user_func_array(Array, Array)
#9 /home/sabour in /home/mywebsite/public_html/mywebsite.com/oc/system/library/mail.php on line 409

Есть идеи, как избавиться от этой ошибки?

1

Решение

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

Вот полная статья, которую я получил от:

https://opencartforum.com/topic/23861-resheno-yandex-takoy-yandex-ne-otpravlyayutsya-pisma-vydaet-oshibku-data-not-accepted-from-server/?page=2

Исправление Opencart 2.0+

Сначала отредактируйте файл каталога / controller / information / contact.php
Ищите строку:

$ Mail-> setFrom ($ this-> request-> post [ 'email']);

Измените это на:

$ Mail-> setFrom ($ this-> config-> get ('config_email'));

Для этого нужно установить поле FROM таким же, как и основной адрес электронной почты вашего магазина.

Теперь найдите эту строку:

$ Mail-> setSender ($ this-> request-> post ['name']);

Измените это на:

$ Mail-> setReplyTo ($ this-> request-> post ['email']);
$ Mail-> setSender ($ this-> config-> get ('config_email'));

Теперь нам нужно отредактировать файл system / library / mail.php
Вам просто нужно изменить одну строку:

$ Header = 'Reply-To:? = UTF-8 B??'. . base64_encode ($ this-> replyto). '='. '<'. $ This-> from. '>'. $ This-> newline;

измените это на:

$ Header = 'Reply-To:? = UTF-8 B??'. . base64_encode ($ this-> replyto). '='. '<'. $ This-> replyto. '>'. $ This-> newline;

Здесь также есть похожая проблема:

phpmailer — следующая ошибка SMTP: данные не принимаются

0

Другие решения

РЕШИТЬ!

В моем случае проблема была SMTP HOSTNAME который на самом деле должен быть primary domain name общего хоста, а не add-on domain,

Mail Protocol: SMTP
Mail Parameters: -fnoreply@addon-domain.com
>>> SMTP Hostname: mail.primary-domain.com <<<
SMTP Username: noreply@addon-domain.com
SMTP Password: ********
SMTP Port: 587
SMTP Timeout: 5

Интересно, почему живая поддержка InmotionHosting.com не осознавала этого!

0

Я пытаюсь выяснить эту проблему в течение 6 часов. Но ничего не имеет смысла. Вот сценарий; Существует хорошо отформатированный HTML шаблон.

Все выглядит нормально, а электронная почта готова к отправке. Вот конфигурация phpmailer;

Все так же, когда я его тестирую. Но иногда отправлялось электронное письмо. Иногда его не отправляли. Дайте мне следующую ошибку: The following SMTP Error: Data not accepted.

  • PHPMailer Скрыть аутентификацию SMTP?
  • Изменение адреса `from` при отправке электронной почты через GMail
  • Обработка ошибок электронной почты Codeigniter
  • Как проверить, что сертификат TLS SMTP действителен в PHP?
  • fgets () и fread () — В чем разница?

ваш сервер не разрешает другим отправителям и имени пользователя, которые вы должны настроить: $mail->From like $mail->Username

Для пользователей AWS, которые работают с SES Amazon совместно с PHPMailer, эта ошибка также появляется, когда ваш отправитель «from» не является проверенным отправителем.

Чтобы добавить проверенного отправителя:

1.) Войдите в свою консоль Amazon AWS: https://console.aws.amazon.com

2.) Выберите «Amazon SES» из списка доступных приложений AWS

3.) В разделе «Проверенные отправители» выберите «Адреса электронной почты» -> «Проверить новый адрес электронной почты»,

4.) Перейдите к электронной почте этого нового отправителя, нажмите ссылку подтверждения по электронной почте.

И все готово.

Над определённым сообщением размера, оно испортит контент при настройке через $ mail-> Body.

Вы можете проверить его, если он хорошо работает с небольшими сообщениями, но не работает с более крупными (более 4-6 кБ), то это проблема.

Кажется, проблема $ mail-> Body, поэтому вы можете обойти это, установив тело HTML вручную через $ mail-> MsgHTML ($ message). И тогда вы можете попытаться добавить тело non-html только $ mail-> AltBody.

Надеюсь, что я могу помочь, не стесняйтесь предоставлять более подробную информацию, информацию.

Попробуйте установить порт на 26, это устранило мою проблему с сообщением «данные не приняты».

установите phpmailer для работы в отладке, чтобы увидеть «реальную» ошибку за общим сообщением «Ошибка SMTP: данные не приняты», в нашем случае текст в сообщении запускал SMTP-фильтр smtp-сервера.

  $email->SMTPDebug = true; 

Интересно, что у меня была такая же точная проблема, и для меня проблема заключалась в том, что моя связь была отключена. Чтобы иметь возможность видеть более подробную информацию о моих подключениях, я добавил $ mail-> SMTPDebug = 4; на мой phpmailer (посмотрите, как захватить отладку, поскольку функция вывода по умолчанию – это эхо).

Вот результат:

 SMTP -> get_lines(): $data was "" SMTP -> get_lines(): $str is "" SMTP -> get_lines(): $data is "" SMTP -> get_lines(): timed-out (10 seconds) SMTP -> FROM SERVER: SMTP -> ERROR: DATA not accepted from server: 

Таймаут по умолчанию устанавливается в 10 секунд. Если ваше приложение может поддерживать больше, добавьте эту строку в свой phpmailer:

 $mail->Timeout = 20; 

У меня возникла такая же проблема. В моем случае почта отправки была отключена, потому что мой сервер Exchange ретранслировал электронную почту на сервер в Интернете. Этот сервер превысил квоту пропускной способности. По-видимому, у php-mailer есть встроенный тайм-аут, и это было недостаточно долго, чтобы увидеть фактическое сообщение.

Мы отправляем электронную почту через SMTP-серверы Gmail, и мы иногда получаем эту точную ошибку от PHPMailer, когда попадаем в пределы отправки Gmail .

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

https://support.google.com/a/answer/166852?hl=en

Понравилась статья? Поделить с друзьями:
  • Error data fc2
  • Error data error cyclic redundancy check failed to read data from the file
  • Error data and hash arguments required
  • Error daily limit exceeded for this payway перевод
  • Error dagger does not support injection into private fields