Stack Overflow en español Asked by connie r.m. on November 17, 2021
El problema es que mi formulario funciona perfectamente en un hosting de "ukoo.mx/SNX/contacto2.php" pero ese mismo contacto lo pase sin cambio alguno a "sanext.mx/contacto2.php" y no manda los mensajes aunque la notificación muestra que si se mando, no entiendo que sucede, si es una mala configuración de hosting de sanext.mx :/
UPDATE
Claro, yo asumi que por lo mismo que funcionaba en el hosting de ukoo el problema estaba en el hosting de sanext y por eso no incluí el codigo pero se los comparto a continuación:
Formulario de contacto
<section class="section section-sm section-last bg-default text-md-left">
<div class="container">
<div class="row row-50">
<div class="col-lg-12">
<h4 class="text-spacing-50">Formulario de contacto</h4>
<form class="rd-form rd-mailform" data-form-output="form-output-global" data-form-type="contact" method="post" action="bat/rd-mailform.php">
<div class="row row-14 gutters-14">
<div class="col-sm-12">
<div class="form-wrap">
<input class="form-input" id="contact-first-name" type="text" name="name" data-constraints="@Required">
<label class="form-label" for="contact-first-name">Nombre</label>
</div>
</div>
<div class="col-12">
<div class="form-wrap">
<input class="form-input" id="contact-email" type="email" name="email" data-constraints="@Email @Required">
<label class="form-label" for="contact-email">Correo electrónico</label>
</div>
</div>
<div class="col-12">
<div class="form-wrap">
<label class="form-label" for="contact-message">Mensaje</label>
<textarea class="form-input" id="contact-message" name="message" data-constraints="@Required"></textarea>
</div>
</div>
</div>
<button class="button button-primary button-pipaluk" type="submit">Enviar</button>
</form>
</div>
</div>
</div>
</section>
rd-mailform.php
<?php
$formConfigFile = file_get_contents("rd-mailform.config.json");
$formConfig = json_decode($formConfigFile, true);
date_default_timezone_set('Etc/UTC');
try {
require './phpmailer/PHPMailerAutoload.php';
$recipients = $formConfig['recipientEmail'];
preg_match_all("/([w-]+(?:.[w-]+)*)@((?:[w-]+.)*w[w-]{0,66}).([a-z]{2,6}(?:.[a-z]{2})?)/", $recipients, $addresses, PREG_OFFSET_CAPTURE);
if (!count($addresses[0])) {
die('MF001');
}
function getRemoteIPAddress() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
} else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
return $_SERVER['REMOTE_ADDR'];
}
if (preg_match('/^(127.|192.168.|::1)/', getRemoteIPAddress())) {
die('MF002');
}
$template = file_get_contents('rd-mailform.tpl');
if (isset($_POST['form-type'])) {
switch ($_POST['form-type']){
case 'contact':
$subject = 'Un mensaje del visitante de su sitio.';
break;
case 'subscribe':
$subject = 'Solicitud de suscripción';
break;
case 'order':
$subject = 'Solicitud de orden';
break;
default:
$subject = 'Un mensaje del visitante de su sitio';
break;
}
}else{
die('MF004');
}
if (isset($_POST['email'])) {
$template = str_replace(
array("<!-- #{FromState} -->", "<!-- #{FromEmail} -->"),
array("Correo electrónico:", $_POST['email']),
$template);
}
if (isset($_POST['message'])) {
$template = str_replace(
array("<!-- #{MessageState} -->", "<!-- #{MessageDescription} -->"),
array("Mensaje:", $_POST['message']),
$template);
}
// In a regular expression, the character v is used as "anything", since this character is rare
preg_match("/(<!-- #{BeginInfo} -->)([^v]*?)(<!-- #{EndInfo} -->)/", $template, $matches, PREG_OFFSET_CAPTURE);
foreach ($_POST as $key => $value) {
if ($key != "counter" && $key != "email" && $key != "message" && $key != "form-type" && $key != "g-recaptcha-response" && !empty($value)){
$info = str_replace(
array("<!-- #{BeginInfo} -->", "<!-- #{InfoState} -->", "<!-- #{InfoDescription} -->"),
array("", ucfirst($key) . ':', $value),
$matches[0][0]);
$template = str_replace("<!-- #{EndInfo} -->", $info, $template);
}
}
$template = str_replace(
array("<!-- #{Subject} -->", "<!-- #{SiteName} -->"),
array($subject, $_SERVER['SERVER_NAME']),
$template);
$mail = new PHPMailer();
if ($formConfig['useSmtp']) {
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 0;
$mail->Debugoutput = 'html';
// Set the hostname of the mail server
$mail->Host = $formConfig['host'];
// Set the SMTP port number - likely to be 25, 465 or 587
$mail->Port = $formConfig['port'];
// Whether to use SMTP authentication
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
// Username to use for SMTP authentication
$mail->Username = $formConfig['username'];
// Password to use for SMTP authentication
$mail->Password = $formConfig['password'];
}
$mail->From = $_POST['email'];
# Attach file
if (isset($_FILES['file']) &&
$_FILES['file']['error'] == UPLOAD_ERR_OK) {
$mail->AddAttachment($_FILES['file']['tmp_name'],
$_FILES['file']['name']);
}
if (isset($_POST['name'])){
$mail->FromName = "SanexT | " .$subject;
}else{
$mail->FromName = "Visitante";
}
foreach ($addresses[0] as $key => $value) {
$mail->addAddress($value[0]);
}
$mail->CharSet = 'utf-8';
$mail->Subject = $subject;
$mail->MsgHTML($template);
$mail->send();
die('MF000');
} catch (phpmailerException $e) {
die('MF254');
} catch (Exception $e) {
die('MF255');
}
rd-mailform.config.json
{
"useSmtp": false,
"host": "mail.gawa.mx",
"port": 465,
"username": "[email protected]",
"password": "*********",
"recipientEmail": "[email protected]"
}
PHPMailerAutoload.php
<?php
/**
* PHPMailer SPL autoloader.
* PHP Version 5
* @package PHPMailer
* @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
* @author Marcus Bointon (Synchro/coolbru) <[email protected]>
* @author Jim Jagielski (jimjag) <[email protected]>
* @author Andy Prevost (codeworxtech) <[email protected]>
* @author Brent R. Matzelle (original founder)
* @copyright 2012 - 2014 Marcus Bointon
* @copyright 2010 - 2012 Jim Jagielski
* @copyright 2004 - 2009 Andy Prevost
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
* @note This program is distributed in the hope that it will be useful - WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*/
/**
* PHPMailer SPL autoloader.
* @param string $classname The name of the class to load
*/
function PHPMailerAutoload($classname)
{
//Can't use __DIR__ as it's only in PHP 5.3+
$filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'class.'.strtolower($classname).'.php';
if (is_readable($filename)) {
require $filename;
}
}
if (version_compare(PHP_VERSION, '5.1.2', '>=')) {
//SPL autoloading was introduced in PHP 5.1.2
if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
spl_autoload_register('PHPMailerAutoload', true, true);
} else {
spl_autoload_register('PHPMailerAutoload');
}
} else {
/**
* Fall back to traditional autoload for old PHP versions
* @param string $classname The name of the class to load
*/
function spl_autoload_register($classname)
{
PHPMailerAutoload($classname);
}
}
rd-mailform.tpl
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="initial-scale=1.0" />
<meta name="format-detection" content="telephone=no" />
<title><!-- #{Subject} --></title>
<style type="text/css">
#outlook a {
padding: 0;
}
body {
width: 100% !important;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
margin: 0;
padding: 0;
}
.ExternalClass {
width: 100%;
}
.ExternalClass,
.ExternalClass span,
.ExternalClass font,
.ExternalClass td,
.ExternalClass div {
line-height: 100%;
}
.ExternalClass p {
line-height: inherit;
}
#body-layout {
margin: 0;
padding: 0;
width: 100% !important;
line-height: 100% !important;
}
img {
display: block;
outline: none;
text-decoration: none;
-ms-interpolation-mode: bicubic;
}
a img {
border: none;
}
table td {
border-collapse: collapse;
}
table {
border-collapse: collapse;
mso-table-lspace: 0pt;
mso-table-rspace: 0pt;
}
a {
color: orange;
outline: none;
}
</style>
</head>
<body id="body-layout" style="background: #406c8d;">
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="center" valign="top" style="padding: 0 15px;background: #406c8d;">
<table align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="15" style="height: 15px; line-height:15px;"></td>
</tr>
<tr>
<td width="600" align="center" valign="top" style="border-radius: 4px; overflow: hidden; box-shadow: 3px 3px 6px 0 rgba(0,0,0,0.2);background: #dde1e6;">
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="center" valign="top" style="border-top-left-radius: 4px; border-top-right-radius: 4px; overflow: hidden; padding: 0 20px;background: #302f35;">
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="30" style="height: 30px; line-height:30px;"></td>
</tr>
<tr>
<td align="left" valign="top" style="font-family: Arial, sans-serif; font-size: 32px; mso-line-height-rule: exactly; line-height: 32px; font-weight: 400; letter-spacing: 1px;color: #ffffff;">Nueva notificación</td>
</tr>
<tr>
<td height="30" style="height: 30px; line-height:30px;"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" valign="top" style="padding: 0 20px;">
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="30" style="height: 30px; line-height:30px;"></td>
</tr>
<tr>
<td align="left" valign="top" style="font-family: Arial, sans-serif; font-size: 14px; mso-line-height-rule: exactly; line-height: 22px; font-weight: 400;color: #302f35;">Hola, alguien te dejó un mensaje en <!-- #{SiteName} --></td>
</tr>
<tr>
<td height="20" style="height: 20px; line-height:20px;"></td>
</tr>
<tr>
<td align="center" valign="top">
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="center" valign="top" style="background: #d1d5da;">
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="1" style="height: 1px; line-height:1px;"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" valign="top" style="background: #e4e6e9;">
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="2" style="height: 2px; line-height:2px;"></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="20" style="height: 20px; line-height:20px;"></td>
</tr>
<tr>
<td align="left" valign="top" style="font-family: Arial, sans-serif; font-size: 24px; mso-line-height-rule: exactly; line-height: 30px; font-weight: 700;color: #302f35;">
<!-- #{Subject} -->
</td>
</tr>
<tr>
<td height="20" style="height: 20px; line-height:20px;"></td>
</tr>
<tr>
<td align="center" valign="top">
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="center" valign="top">
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="110" align="left" valign="top" style="padding: 0 10px 0 0;font-family: Arial, sans-serif; font-size: 14px; mso-line-height-rule: exactly; line-height: 20px; font-weight: 400;color: #302f35;font-weight: 700;"><!-- #{FromState} --></td>
<td align="left" valign="top" style="font-family: Arial, sans-serif; font-size: 14px; mso-line-height-rule: exactly; line-height: 20px; font-weight: 400;color: #302f35;"><!-- #{FromEmail} --></td>
</tr>
<!-- #{BeginInfo} -->
<tr>
<td width="110" align="left" valign="top" style="padding: 0 10px 0 0;font-family: Arial, sans-serif; font-size: 14px; mso-line-height-rule: exactly; line-height: 20px; font-weight: 400;color: #302f35;font-weight: 700;"><!-- #{InfoState} --></td>
<td align="left" valign="top" style="font-family: Arial, sans-serif; font-size: 14px; mso-line-height-rule: exactly; line-height: 20px; font-weight: 400;color: #302f35;"><!-- #{InfoDescription} --></td>
</tr>
<!-- #{EndInfo} -->
</table>
</td>
</tr>
<tr>
<td height="12" style="height: 12px; line-height:12px;"></td>
</tr>
<tr>
<td align="left" valign="top" style="font-family: Arial, sans-serif; font-size: 14px; mso-line-height-rule: exactly; line-height: 20px; font-weight: 400;color: #302f35;font-weight: 700;"><!-- #{MessageState} --></td>
</tr>
<tr>
<td align="left" valign="top" style="font-family: Arial, sans-serif; font-size: 14px; mso-line-height-rule: exactly; line-height: 20px; font-weight: 400;color: #302f35;">
<!-- #{MessageDescription} -->
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="40" style="height: 40px; line-height:40px;"></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="20" style="height: 20px; line-height:20px;"></td>
</tr>
<tr>
<td width="600" align="center" valign="top">
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="center" valign="top" style="font-family: Arial, sans-serif; font-size: 12px; mso-line-height-rule: exactly; line-height: 18px; font-weight: 400;color: #a1b4c4;">Este es un correo electrónico generado automáticamente, por favor no responda.</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="20" style="height: 20px; line-height:20px;"></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
Espero que me puedan apoyar con esto 🙁
Entiendo que cambiaste de hosting, pero veo que tienes dos dominios distintos también (ukoo.mx y sanext.mx).
Para poder enviar mails de forma efectiva con la función nativa de php mail(...)
el email de origen debe pertenecer al mismo dominio, te paso un ejemplo simple...
<?php
$mensaje = '<h1>Hola Mundo!</h1>';
$asunto = 'Mensaje de prueba';
$mail_destino = '[email protected]';
$nombre_from = 'Mi sitio web';
$mail_from = '[email protected]'; // Importante, debe pertenecer al dominio, en tu caso (ukoo.mx o sanext.mx)
$nombre_reply = 'Soporte técnico';
$email_reply = '[email protected]'
$headers = "MIME-Version: 1.0rn";
$headers .= "Content-type: text/html; charset=iso-8859-1rn";
$headers .= "From: ".$nombre_from." <".$mail_from.">rn";
$headers .= "Reply-To: ".$nombre_reply." <".$email_reply.">rn";
if (mail($mail_destino, $asunto, $mensaje, $headers))
{
echo 'Email enviado OK';
}
else
{
echo 'No se ha enviado el email.';
}
?>
Ojalá sirva de ayuda, saludos!
Answered by Mario Crespo on November 17, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP