Amigos, preciso de uma ajuda, tenho um formulário no meu site que após o envio ele deveria mandar uma cópia para mim dos dados preenchidos. Acontece algo muito estranho, em alguns momentos o formulario é enviado e em algum momentos só fica gravado no banco de dados e não gera o email, fazendo com que eu tenha que checar o Banco de Dados diariamente para ver se teve algum formulário que não foi enviado.
Veja o código que estou utilizando - ele tem algumas variáveis e passa os dados de utm alem de uma formatação; o envios esta sendo via SendGrid; tem algo errado nesse código???
import { fetch } from 'wix-fetch';
import wixLocation from 'wix-location';
import {sendMail} from 'backend/sendGrid';
import wixData from 'wix-data';
let emailSubjectNumber = -190000;
$w.onReady(function () {
getId();
let date = new Date();
let day = date.getDate();
let month = date.getMonth() + 1;
let year = date.getFullYear();
let dateStr = day + "/" + month + "/" + year;
$w("#dataset1").onAfterSave(sendEmail);
});
function sendEmail() {
let mailContent = "<table class='blueTable'>" +
getRow("Nome", $w("#input13").value) +
getRow("Email", $w("#input14").value) +
getRow("Telefone", $w("#input15").value) +
getRow("Data", $w("#datePicker2").value) +
getRow("Cidade/Estado", $w("#input16").value) +
getRow("Numero de Convidados", $w("#input17").value) +
getRow("Duração", $w("#dropdown2").value) +
getRow("Tipo", $w("#dropdown4").value) +
getRow("Temática", $w("#input18").value) +
getRow("Mensagem", $w("#textBox2").value) +
getRow(" ", " ") +
getRow("URL Parameters", "");
let query = wixLocation.query;
if (query.hasOwnProperty('utm_campaign')) {
mailContent += getRow("utm_campaign", query.utm_campaign);
}
if (query.hasOwnProperty('utm_content')) {
mailContent += getRow("&utm_content", query.utm_content);
}
if (query.hasOwnProperty('utm_medium')) {
mailContent += getRow("utm_medium", query.utm_medium);
}
if (query.hasOwnProperty('utm_source')) {
mailContent += getRow("utm_source", query.utm_source);
}
if (query.hasOwnProperty('utm_term')) {
mailContent += getRow("utm_term", query.utm_term);
}
mailContent += "</table>";
let subject = "Orçamento Recebido Site #" + emailSubjectNumber;
let emailBody = getHeader(subject) + getBody(subject, mailContent);
sendMail("andre@xxxxxx.com", "Admin", subject, emailBody, $w("#input14").value);
sendMail("comercial@xxxxxx.com", "Admin", subject, emailBody, $w("#input14").value);
}
function getHeader(title) {
return "<head>" +
"<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>" +
"<meta name='viewport' content='width=device-width, initial-scale=1'>" +
"<meta http-equiv='X-UA-Compatible' content='IE=edge'>" +
"<meta name='format-detection' content='date=no'>" +
"<meta name='format-detection' content='telephone=no'>" +
"<title>" + title + "</title>" +
"<style type='text/css'>" +
"body{margin:0;padding:0;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}table.blueTable{border:1px solid #1C6EA4;background-color:#EEE;width:100%;text-align:left;border-collapse:collapse}table.blueTable td,table.blueTable th{border:1px solid #AAA;padding:3px 2px}table.blueTable tbody td{font-size:13px}table.blueTable tr:nth-child(even){background:#D0E4F5}table.blueTable thead{background:#1C6EA4;background:-moz-linear-gradient(top,#5592bb 0,#327cad 66%,#1C6EA4 100%);background:-webkit-linear-gradient(top,#5592bb 0,#327cad 66%,#1C6EA4 100%);background:linear-gradient(to bottom,#5592bb 0,#327cad 66%,#1C6EA4 100%);border-bottom:2px solid #444}table.blueTable thead th{font-size:15px;font-weight:700;color:#FFF;border-left:2px solid #D0E4F5}table.blueTable thead th:first-child{border-left:none}table.blueTable tfoot{font-size:14px;font-weight:700;color:#FFF;background:#D0E4F5;background:-moz-linear-gradient(top,#dcebf7 0,#d4e6f6 66%,#D0E4F5 100%);background:-webkit-linear-gradient(top,#dcebf7 0,#d4e6f6 66%,#D0E4F5 100%);background:linear-gradient(to bottom,#dcebf7 0,#d4e6f6 66%,#D0E4F5 100%);border-top:2px solid #444}table.blueTable tfoot td{font-size:14px}table.blueTable tfoot .links{text-align:right}table.blueTable tfoot .links a{display:inline-block;background:#1C6EA4;color:#FFF;padding:2px 8px;border-radius:5px}" +
"</style>" +
"</head>";
}
export function getBody(firstLine, tableData) {
return "<body>" +
"<h1>" + firstLine + "</h1>" +
tableData +
"</body></html>";
}
function getRow(title, value) {
return '<tr>' +
'<td><strong>' + title + '</strong></td>' +
'<td>' + value + '</td>' +
'</tr>';
}
function getId() {
wixData.query("SiteData").eq("key", "email_subject").find().then( (results) => {
console.log("Get data: " + JSON.stringify(results.items[0]));
emailSubjectNumber = results.items[0].value;
updateId(results.items[0]);
});
}
function updateId(item) {
let dd = parseInt(item.value) + 1;
let toUpdate = {
"_id": item._id,
"key": "email_subject",
"value": "" + dd
};
wixData.update("SiteData", toUpdate).then( (results) => {
console.log("Updated data: " + JSON.stringify(toUpdate));
}).catch( (err) => {
console.log("Error while updating data : " + err);
});
}
Olá @Andre Schuartz
Olha só, chequei todo o seu código e ele realmente está certo. Não identifiquei erros nele. Mas podemos investigar a causa do problema... 1 - Começando pelo mais simples, você já checou sua caixa de spam ou lixo eletrônico? Esses emails podem ter chegado lá. 2- Você pode enviar um link do seu site? Assim eu posso checar se há algo na forma como o usuário responde o seu formulário ou outros fatores que causem esse bug. Fico no aguardo do seu Feedback ;)