Como envio os envios de formulários de contato do ApostropheCMS por e-mail?

geochanto

Criei um módulo de formulário de contato de acordo com esta documentação: https://apostrophecms.org/docs/tutorials/intermediate/forms.html

O trabalho de envio e os formulários enviados são exibidos no item de menu do administrador "Formulários de contato".

Também quero gerar um e-mail para um endereço de e-mail de destinatário para cada envio. apóstrofo-peças-enviar-widgets afirma que eu possooverride the beforeInsert method to send email, if desired.

No entanto, não tenho certeza de onde devo substituir esse método.

Devo adicionar um beforeInsertmétodo dentro do método /lib/modules/contact-form/index.js self.submit ?

Ou devo criar uma cópia de nível de projeto de apóstrofo-peças-enviar-widgets e substituir o beforeInsertmétodo lá (acho que isso é provavelmente muito global e, portanto, não ideal)?

Por último, devo envolver apóstrofo-email ?

Tom Boutell

Minha resposta aqui assume que você está de fato usando apostrophe-pieces-submit-widgets. Então você não teve que escrever muito código até agora. Você já tem um módulo de peças, vamos chamá-lo products, e fez um módulo de envio de widgets,, products-submit-widgetsque estende apostrophe-pieces-submit-widgets. OK ótimo. Vamos falar sobre como fazer o resto do caminho para enviar e-mail.

O beforeInsertmétodo intencionalmente começa sem fazer nada, pois é sua oportunidade de fazer "algo extra" no código de nível de projeto.

Para substituir esse método, crie lib/modules/products-submit-widgets/index.jsse ainda não tiver feito isso. Você provavelmente já tem esse arquivo com addFieldse extendetc. de acordo com a documentação de apostrophe-pieces-submit-widgets.

Agora seu código pode ter a seguinte aparência:

module.exports = {

  // ALL OF YOUR EXISTING CONFIGURATION OF THE products-submit-widgets
  // MODULE STILL GOES HERE, then...

  construct: function(self, options) {
    self.beforeInsert = function(req, piece, callback) {
      return self.email(req, 'emailSubmission', {
        piece: piece
      }, {
        // can also specify from and other
        // valid properties for nodemailer messages here
        to: '[email protected]',
        subject: 'A new submission was received'
      }, callback);
    };
  }
}

Agora, lib/modules/my-pieces-module-name-submit-widgets/viewsem nível de projeto , criar um emailSubmission.htmlarquivo e preenchê-lo assim:

<h4>A new submission was received</h4>

A new submission was received from {{ piece.someFieldOrOther }}.

It contains this information:

{{ piece.someOtherField }}
{{ piece.yetAnotherField }}
{{ piece.etc }}

Por enquanto, tudo bem! Mas, para que o self.emailmétodo funcione, você precisa configurar o apostrophe-emailmódulo. Uma configuração básica pode ser parecida com esta, se você já tiver um agente de entrega de e-mail em seu servidor Linux:

// in app.js
modules: {
  'apostrophe-email': {
    // Default "from" address. Note your email can be dropped as spam
    // if this address is invalid or your server has no right to send
    // email for it
    from: '"Jane Doe" <[email protected]>',
    // See the nodemailer documentation, many
    // different transports are available, this one
    // matches how PHP does it on Linux servers
    nodemailer: {
      sendmail: true,
      newline: 'unix',
      path: '/usr/sbin/sendmail'
    }
  }
}

Mas, para informações mais completas sobre isso, consulte o envio de e-mail do seu projeto Apostrophe . Se você usar uma configuração ingênua, seus e-mails podem ser descartados como spam. Se você não planeja usar um serviço como Amazon Simple Email Service ou Postmark, e seu volume está baixo, você pode configurar o nodemailer para enviar mensagens através de uma conta do gmail válida sem muito trabalho.

Espero que isso seja útil! Seria um ótimo PR adicionar isso como um recurso embutido opcional do módulo de widgets de envio de peças de apóstrofo.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como capturar e analisar erros corretamente no manipulador de envio de formulários do React?

Formulário de contato por e-mail sem PHP

Envio de e-mails do formulário de contato, com as funções do firebase e nodemailer

Envio de e-mails do formulário de contato, com as funções do firebase e nodemailer

Formulário de contato - nome do usuário e e-mail fornecido como 'desconhecido'

Validação do formulário de contato PHP e envio na mesma página

Formulário de contato 7- Valores de upload de vários arquivos como links no e-mail

Envio de e-mail do Planilhas Google após a atualização de uma célula do Formulários Google

Como rastrear dados UTM em envios de formulários do Squarespace

Envios de formulários Slim 4 PUT e DELETE

Envios de formulários Slim 4 PUT e DELETE

Como evitar o redirecionamento para um determinado URL após o envio do Formulário de Contato 7 sem inserir os campos obrigatórios

Como evitar múltiplos envios de formulários em PHP

Como processar um envio de formulário AJAX com envios múltiplos e roteamento do Laravel

Envio do formulário de contato independentemente do Recaptcha

Envios de formulários separados por campanha em análises

como resolver o erro de envio de e-mail do formulário de contato

Por que todos os formulários são enviados quando apenas um botão de envio do formulário é clicado?

Como incluir <? Php echo $ page; ?> dentro do formulário de contato 7 e-mail no wordpress

Os envios de formulários do Netlify "bem-sucedidos" não aparecem no painel

Modifique o formulário de contato para usar o assunto inserido pelo usuário como assunto do e-mail

Envio de respostas do Formulários Google para o endereço de e-mail especificado ao enviar

Como renderizar novamente os componentes do aplicativo após o envio do formulário de contato?

Como posso salvar meus dados de envios de formulários do wordpress em um arquivo json

O envio de e-mail do formulário de contato 7 não está funcionando

Bootstrap JavaScript para desativar os envios de formulários se houver campos inválidos e o restante do formulário não estiver funcionando conforme o esperado

Como definir o estilo do botão de upload de arquivo "Pesquisar computador" para o Formulário de contato 7 por e-mail?

Envio de relatórios de acesso por e-mail como HTML

envio da página de contato do formulário

TOP lista

quentelabel

Arquivo