Post by sarjentocuch » Thu Jan 29, 2015 8:30 pm

Hola amigos, haber si me podeis orientar un poco por favor.

El email en la tienda funciona bien, osea cada vez que un cliente compra algo,, llega un email, cada vez que un cliente se registra, tambien llega, asi que en principio, todo parece estar bien.

Pero cuando uno envia un email desde la secciond e formulario de contacto, yo envio un email, y este no llega nunca.

pongo mi nombre, email, relleno el texto, luego la captcha de seguridad, y le doy a enviar.
y me dice:

Su pregunta se ha enviado con éxito a Servicio al Cliente!

Pero luego, el email nunca llega, no se si tengo que configurar algo en algun sitio aparte para esto??
Last edited by sarjentocuch on Tue Feb 03, 2015 1:31 am, edited 1 time in total.

New member

Posts

Joined
Tue Mar 11, 2014 9:17 am

Post by sarjentocuch » Fri Jan 30, 2015 2:23 am

Acabo de descubrir algo, y es para daros alguna pista, de haber como puedo solucionar esto.
bien, como he dicho, solo tengo problemas con el formulario de contacto de mi opencart. todo lo demas llega bien.

He descubierto que cuando entro a mi Cpanel (del hosting) / cuentas de correo electronico / acceder al correo web / Orde

ahi, si que veoi todos esos mensajes que llegan desde el formulario. pero claro, el titulo de todos los mensajes es este:
MAIL DELIVERY SYSTEM

Y dentro de los email, veo por ejemplo este texto, este es solo un ejemplo, de uno de ellos:

Code: Select all


Hoy, 18:02:54 UTC Mail failure - no recipient addresses de Mail Delivery System
[text/plain] Texto (1 KB)
A message that you sent using the -t command line option contained no
addresses that were not also on the command line, and were therefore
suppressed. This left no recipient addresses, and so no delivery could
be attempted.

------ This is a copy of your message, including all the headers. ------

To: chezflamenco@chezflamenco.com
Subject: =?UTF-8?B?UHJlZ3VudGEgVHhvbWluIGNlbnRyb2FtZXJpY2E=?=
MIME-Version: 1.0
Date: Thu, 29 Jan 2015 18:02:54 +0000
From: =?UTF-8?B?VHhvbWluIGNlbnRyb2FtZXJpY2E=?=<centroamerica@infomaniakos.com>
Reply-To: =?UTF-8?B?VHhvbWluIGNlbnRyb2FtZXJpY2E=?=<centroamerica@infomaniakos.com>
Return-Path: centroamerica@infomaniakos.com
X-Mailer: PHP/5.3.29
Content-Type: multipart/related; boundary="----=_NextPart_419da1583053b2f82cdc20b0a7de90b8"
Message-Id: <E1YGtQc-0002qg-GG@s00.hostcreativosnet.com>

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

ahinara si te llega este mensaje dimelo como sea, por email, wataspp o como sea.
------=_NextPart_419da1583053b2f82cdc20b0a7de90b8--


por que ocurre esto? no lo entiendo, solo ocurre esto en el formulario.

New member

Posts

Joined
Tue Mar 11, 2014 9:17 am

Post by CoverUp » Fri Jan 30, 2015 5:47 am

el formulario de contacto tiene un error al parsear la direccion de email y por tanto el correo no puede ser enviado

en general esto ocurre con direccion del tipo
nombre del contacto <direccion@delcontacto.dom> y se corrige dejando sólo <direccion@delcontacto.dom>
pero debes corregir el código del contacto

Desarrollador OpenCart: Chilexpress, Correos de Chile, Tur-Bus, Pullman Bus, Starken, WebPay Plus, Servipag y otros a pedido. Todos los trabajos estan garantizados y con factura electrónica.


Active Member

Posts

Joined
Tue Oct 21, 2014 12:22 am

Post by sarjentocuch » Fri Jan 30, 2015 6:55 pm

CoverUp wrote:el formulario de contacto tiene un error al parsear la direccion de email y por tanto el correo no puede ser enviado

en general esto ocurre con direccion del tipo
nombre del contacto <direccion@delcontacto.dom> y se corrige dejando sólo <direccion@delcontacto.dom>
pero debes corregir el código del contacto
Hola cover, no entiendo la solucion que dice, podrias concretar un poco por favor? que archivo tengo que modificar o en que linea? y que es lo que tengo que hacer, es que la s 2 que dices son identicas, no veo diferencia.
es que no se ni por donde empezar.

New member

Posts

Joined
Tue Mar 11, 2014 9:17 am

Post by sarjentocuch » Fri Jan 30, 2015 11:58 pm

Ha lo mejor te refieres a cambiar "chezflamenco@chezflamenco.com" cambiarlo por "loquesea@chezflamenco.com".
es que estoy venga que leer tu respuesta, y no lla entiendo, lo siento :)

New member

Posts

Joined
Tue Mar 11, 2014 9:17 am

Post by CoverUp » Mon Feb 02, 2015 5:29 am

no son identicas una es
"nombre del contacto <direccion@delcontacto.dom>"
y la otra es
"<direccion@delcontacto.dom>"
por lo tanto debes eliminar del codigo el nombre
$header .= 'Reply-To: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline;
por
$header .= 'Reply-To: ' . '<' . $this->from . '>' . $this->newline;
y hacer lo mismo para el campo $to

Desarrollador OpenCart: Chilexpress, Correos de Chile, Tur-Bus, Pullman Bus, Starken, WebPay Plus, Servipag y otros a pedido. Todos los trabajos estan garantizados y con factura electrónica.


Active Member

Posts

Joined
Tue Oct 21, 2014 12:22 am

Post by sarjentocuch » Mon Feb 02, 2015 7:55 am

Hola CoverUp , voy ha ver si encuentro el archivo a modificar, pero no conozco para nada opencart. me da que me voy a volver loco.
me dices simplemente sustituir esa linea, por la otra. verdad?

y lo de hacer lo mismo en el campo = "$to", no se, ya vere si viendo el codigo soy capaz de encontrar eso, pero yo no tengo ni idea de php :(

PD: el archivo puede ser "system / library / mail.php" ???

CoverUp por favor, yo no se nada de PHP, estoy dando palos de ciego, y necesito solucionar ese error, por favor?
creo que lo de la primera linea lo he echo, pero lo de el $to, ni idea.

New member

Posts

Joined
Tue Mar 11, 2014 9:17 am

Post by sarjentocuch » Mon Feb 02, 2015 8:41 am

CoverUp, de verdad que no se hacerlo, he echo varias pruebas, y en todas me pasa lo mismo.
espero que el archivo sea el "mail.php" que hay en system/library.

el codigo del archivo es este:

Code: Select all

<?php
class Mail {
	protected $to;
	protected $from;
	protected $sender;
	protected $subject;
	protected $text;
	protected $html;
	protected $attachments = array();
	public $protocol = 'mail';
	public $hostname;
	public $username;
	public $password;
	public $port = 25;
	public $timeout = 5;
	public $newline = "\n";
	public $crlf = "\r\n";
	public $verp = false;
	public $parameter = '';

	public function setTo($to) {
		$this->to = $to;
	}

	public function setFrom($from) {
		$this->from = $from;
	}

	public function setSender($sender) {
		$this->sender = $sender;
	}

	public function setSubject($subject) {
		$this->subject = $subject;
	}

	public function setText($text) {
		$this->text = $text;
	}

	public function setHtml($html) {
		$this->html = $html;
	}

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

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

		if (!$this->from) {
			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 (is_array($this->to)) {
			$to = implode(',', $this->to);
		} else {
			$to = $this->to;
		}

		$boundary = '----=_NextPart_' . md5(time());

		$header = '';
		
		$header .= 'MIME-Version: 1.0' . $this->newline;
		
		if ($this->protocol != 'mail') {
			$header .= 'To: ' . $to . $this->newline;
			$header .= 'Subject: ' . $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->from . '>' . $this->newline;
		$header .= 'Reply-To: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline;
		$header .= 'Return-Path: ' . $this->from . $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->from);

			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') {
			$handle = fsockopen($this->hostname, $this->port, $errno, $errstr, $this->timeout);

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

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

				if (substr($this->hostname, 0, 3) == 'tls') {
					fputs($handle, 'STARTTLS' . $this->crlf);

					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();								
					}
				}

				if (!empty($this->username)  && !empty($this->password)) {
					fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . $this->crlf);

					$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' . $this->crlf);

					$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->username) . $this->crlf);

					$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->password) . $this->crlf);

					$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') . $this->crlf);

					$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->from . '>XVERP' . $this->crlf);
				} else {
					fputs($handle, 'MAIL FROM: <' . $this->from . '>' . $this->crlf);
				}

				$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 . '>' . $this->crlf);

					$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 . '>' . $this->crlf);

						$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' . $this->crlf);

				$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("\r\n", "\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 . $this->crlf);
						} else {
							fputs($handle, str_replace("\n", "\r\n", $result) . $this->crlf);
						}							
					}
				}
				
				fputs($handle, '.' . $this->crlf);

				$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' . $this->crlf);

				$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);
			}
		}
	}
}
?>
la linea 94 la he dejado asi:

Code: Select all

$header .= 'Reply-To: ' . '<' . $this->from . '>' . $this->newline;
y luego lo de el $to, creo que te refieres a esto:
veo 2 lineas las del 147 al 151, veo esto, pero no se que hacer con ello:

Code: Select all

			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);
			}

New member

Posts

Joined
Tue Mar 11, 2014 9:17 am

Post by CoverUp » Mon Feb 02, 2015 9:15 am

Para las notificaciones $to se define en la configuración del OC, corresponde al mail de contacto de la tienda.
Ademas de modificar mail.php debes modificar information/contact.php
la seccion
$mail->setTo($this->config->get('config_email'));
es la que se llena con la información de la tienda (correo general)
es por ello que al introducir el valor debes usar "<correo@correo.com>" y no "nombre <correo@correo.com>"

Desarrollador OpenCart: Chilexpress, Correos de Chile, Tur-Bus, Pullman Bus, Starken, WebPay Plus, Servipag y otros a pedido. Todos los trabajos estan garantizados y con factura electrónica.


Active Member

Posts

Joined
Tue Oct 21, 2014 12:22 am

Post by sarjentocuch » Mon Feb 02, 2015 7:33 pm

te envio un MP CoverUp.

New member

Posts

Joined
Tue Mar 11, 2014 9:17 am

Post by CoverUp » Tue Feb 03, 2015 1:25 am

[Solucionado]

Desarrollador OpenCart: Chilexpress, Correos de Chile, Tur-Bus, Pullman Bus, Starken, WebPay Plus, Servipag y otros a pedido. Todos los trabajos estan garantizados y con factura electrónica.


Active Member

Posts

Joined
Tue Oct 21, 2014 12:22 am

Post by sarjentocuch » Tue Feb 03, 2015 1:31 am

Un millon de gracias CoverUP.

New member

Posts

Joined
Tue Mar 11, 2014 9:17 am

Post by framendoza » Thu Mar 05, 2015 10:02 pm

Holaa .

Yo tengo el mismo problema :(

reemplace la linea
$header .= 'Reply-To: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline;

por:
$header .= 'Reply-To: ' . '<' . $this->from . '>' . $this->newline;

Ahora no sé que más hacer.

Les agradecería una ayuda porfavor.

Gracias :)

Newbie

Posts

Joined
Thu Mar 05, 2015 9:56 pm

Post by sarjentocuch » Wed Mar 11, 2015 3:16 am

ya te envie la solucion por MP ;)

New member

Posts

Joined
Tue Mar 11, 2014 9:17 am

Post by rafa120993 » Tue Aug 18, 2015 12:05 pm

Me podrían ayudar, tengo el mismo problema y no se que hacer. Pues he leído este post y no me ha quedado la solución clara. :-\

Newbie

Posts

Joined
Tue Aug 18, 2015 12:02 pm

Post by rafa120993 » Tue Aug 18, 2015 12:10 pm

Me podrían ayudar, es que tengo el mismo problema y no se que hacer. He leído este post y no me ha quedado muy claro lo que tengo que hacer. :-\

Newbie

Posts

Joined
Tue Aug 18, 2015 12:02 pm

Post by sarjentocuch » Wed Aug 19, 2015 8:28 pm

el opnecart esta bien, la solucion pasa por poner bien los datos de smpt, osea configurarlo correctamente en el hots y opencart.
o poner un email de hotmail o gmail correcto en / sistema/ configuracion / editar / general

New member

Posts

Joined
Tue Mar 11, 2014 9:17 am

Post by fagu » Mon Feb 08, 2016 9:24 pm

Yo tengo el mismo problema, no me envia los correos , probe por defecto y probe con gmail
pero nada, que debo hacer?

Saludos

Newbie

Posts

Joined
Fri Jan 29, 2016 4:33 am

Post by sarjentocuch » Wed Feb 10, 2016 4:48 am

mi respuesta anterior te deberia de valer :) si no, ni idea.

New member

Posts

Joined
Tue Mar 11, 2014 9:17 am

Post by ceac » Tue Jul 14, 2020 7:23 am

Hola buenas soy super nuevo en esto de Opencart instale 2 tiendas tienda y tengo problemas con el contacto en una no envía los correos al administrador y en la otra si lo envía pero en el correo del remitente me pone otro correo @teemo.dhn.cl>

si alguien me puede ayudar gracias

Newbie

Posts

Joined
Tue Jul 14, 2020 6:59 am
Who is online

Users browsing this forum: No registered users and 103 guests