@Arslan96py
Python и PHP программист

Почему SMTP Gmail не отправляет письма на некоторые email?

Есть php скрипт на хостинге по отправке почты по SMTP, почта собственная,
Cron запускает php скрипт, он считывает текстовый файл и отправляет содержимое на почту всем пользователям в базе, если заявку отправляю я или коллеги то всё отправляется и заносится в базу, но если заявку оставляют пользователи то в базу заявка заносится а при рассылке на каждой почте ошибка SMTP connect() failed.
Из-за чего это и как это можно исправить?

Скрипт отправки:
foreach ($files_array as $file_name){
	    	// чтение файла с заявкой
	        $file = fopen($file_name, "r") or die("Unable to open file!");
	        $file = fread($file,filesize($file_name));
	        $file = explode("|", $file);

	        foreach ($emails_array as $email){

	            $mailfrom = 'haytek.server@gmail.com';

		    $id = mb_convert_encoding($file[0], "UTF-8", "WINDOWS-1251");
	            $subject = "Новая заявка по грузоперевозкам $id";

	            $message = "";
	            foreach ($file as $value) {
	                $message .= mb_convert_encoding($value, "UTF-8", "WINDOWS-1251")."\n\n";
	            }
	            
	            $mail = new PHPMailer();
	            $mail->IsSMTP();
	            $mail->CharSet = "utf-8";
	            $mail->Host = 'smtp.gmail.com';
	            $mail->Port = 587;
	            $mail->SMTPAuth = true;
	            $mail->Username = 'haytek.server@gmail.com';
	            $mail->Password = $password;
	            $mail->SMTPSecure = 'tsl';

	            $mail->From = $mailfrom;
	            $mail->FromName = $mailfrom;
	            $mail->AddAddress($newemail, "");

	            $mail->AddAddress(strtolower(trim($email)), "");

	            $mail->AddReplyTo($mailfrom);

	            $mail->Body = stripslashes($message);
	            $mail->Subject = stripslashes($subject);
	            $mail->WordWrap = 80;

	            if (!$mail->Send())
	            {
	            	// Запись в лог файл сведения об ошибке
	            	$log = fopen("log.txt","a");
					fwrite($log, iconv("UTF-8", "WINDOWS-1251", "\n\nОшибка при отправке $email, \n\n".$mail->ErrorInfo.",  \n\n$message"));
					fclose($log);
	                continue;
	            }
	            
	        }
	 

	        unlink($file_name);

	    }
  • Вопрос задан
  • 324 просмотра
Пригласить эксперта
Ответы на вопрос 4
У них есть ограничение на количество отправленных в сутки писем. В зависимости от типа аккаунта лимит может быть от 500 писем.
Код ошибки при превышении лимита - 421.
Ответ написан
@Ghool
Сисадмин, Нагрузочное тестирование
А эти емайлы точно существуют?
Гугл может проверять существование домена, а в случае общительного сервера-получателя ещё и наличие такого ящика на сервере
Ответ написан
@Arslan96py Автор вопроса
Python и PHP программист
В общем, помогло разбиение базы на две части и отправка двумя Email'ами, всё таки будто там ограничение какое-то, если нарою подробности - сообщу

Напомню: отправляю через SMTP, gmail'ы собственные, с паролями приложений
Ответ написан
Комментировать
@sashagm
перейдите на другой сервис) такая же фигня, на половину приходило либо вообще не хотел. времено перебрался на mail.ru работает
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы