Jump to content
Fórum Script Brasil
  • 0

PHP Warning:  file_get_contents(http://localhost:8080/assets/mail/template.html):  failed to open stream: HTTP request failed!


lucasdgimenez

Question

Estou trabalhando em um projeto construído com php slim, onde eu tenho uma tela de cadastro que ao clicar em cadastrar aciona a rota /registrar da rota pai "/clientes"

image.thumb.png.7809acbfaa07743ccd499a2e05bc3293.png

 

O erro que gera é esse aqui:

image.png.a9bc23316417946939cec08cefa6c7bc.png

A linha do arquivo Email é essa:

image.png.00d403f95ccf880341ee447cb7967690.png

O codigo completo do arquivo Email.php é esse:
 

<?php

	
	namespace App\Services;

	ini_set('display_errors', 1);
	ini_set('display_startup_errors', 1);
	error_reporting(E_ALL);

	use PHPMailer\PHPMailer\PHPMailer;
	
	class Email
	{
		
		private static $HOST = EMAIL_HOST;
		private static $LOGIN = EMAIL_LOGIN;
		private static $PASS = EMAIL_PASS;
		private static $PORT = EMAIL_PORT;
		private static $SMTPSecure = EMAIL_SMTP_SECURE;
		private static $SMTPAuth = EMAIL_SMTP_AUTH;
		private static $templateMail = BASEURL . 'assets/mail/template.html';
		
		public static function send(String $toEmail, String $toName, String $subject, String $message, String $replyTo = null, String $replyToName = null, $attachments = null, $copyTo = null)
		{
			if (ENV == 'local') {
				$toEmail = 'caleksitch@hotmail.com';
				//$toEmail = 'lucasdgimenez@gmail.com';
				$subject = "Teste Fundamenta - {$subject}";
			}

			/*$curl = curl_init();
			curl_setopt($curl, CURLOPT_URL, self::$templateMailURL);
			curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
			$templateMail = curl_exec($curl);

			if ($templateMail === false) {
				throw new \Exception("Failed to fetch template using cURL: " . curl_error($curl));
			}

			curl_close($curl);*/

			
			$templateMail = file_get_contents(self::$templateMail);

			$message = str_replace('HTMLMessage', $message, $templateMail);
			
			$mail = new PHPMailer;
			$mail->isSMTP();
			$mail->CharSet = 'UTF-8';
			$mail->SMTPDebug = 0; //2 para modo debug
			$mail->Host = self::$HOST;
			$mail->Port = self::$PORT;
			$mail->SMTPSecure = self::$SMTPSecure;
			$mail->SMTPAuth = self::$SMTPAuth;
			$mail->Username = self::$LOGIN;
			$mail->Password = self::$PASS;
			$mail->SMTPOptions = array(
				'ssl' => array(
					'verify_peer' => false,
					'verify_peer_name' => false,
					'allow_self_signed' => true
				)
			);
			$mail->setFrom(self::$LOGIN, 'Fundamenta');
			$mail->Subject = $subject;
			$mail->Body = $message;
			$mail->IsHTML(true);
			if ($replyTo !== null) {
				$mail->addReplyTo(trim($replyTo), $replyToName);
			}
			$mail->addAddress(trim($toEmail), $toName);
			if ($copyTo) {
				for ($i = 0; $i < sizeof($copyTo); $i++) {
					$mail->addCC($copyTo[$i]);
				}
			}
			if ($attachments) {
				foreach ($attachments as $attachment) {
					$mail->addAttachment($attachment[0], $attachment[1]);
				}
			}
			if (!$mail->send()) {
				throw new \Exception($mail->ErrorInfo);
			}
		}
		
		
	}

Já tentei buscar no google esse problema e a maioria indica a solução do curl em vez do file_get_contents, o problema é que ao tentar implementar essa solução do curl (que está comentada no código acima) o sistema roda um loading infinito, não sei exatamente qual pode ser o problema disso. 

A versão do php é 7.4 e a do apache é 2.4.52

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.8k
×
×
  • Create New...