# Envie um formulário do site para o Gmail (e por que o mailto: falha)

> Receba os envios de formulário no Gmail sem links mailto:, senhas de app ou Apps Script, e depois rotule, tire do spam e responda pelo Gmail.

Publicado em 2026-10-25 · https://ikiform.com/pt-br/guides/send-form-to-email/gmail

Envie o formulário para um backend de formulários e adicione seu endereço do Gmail como destinatário; não use um action `mailto:`, que só abre o app de e-mail do visitante. Depois crie um filtro no Gmail para o remetente, para que os envios escapem do spam e ganhem um marcador próprio. Clicar em **Reply** no Gmail responde ao visitante, a partir do seu próprio endereço.

## O que muda aqui

O Gmail é uma caixa de correio, não um serviço de envio para o seu site. Ele não tem uma URL para a qual um formulário possa enviar, então todo caminho até o Gmail passa por outra coisa. A primeira coisa que a maioria das pessoas tenta é `mailto:`:

`O formulário que parece funcionar`:

```html
<form action="mailto:you@gmail.com" method="post" enctype="text/plain">
  <input name="name" />
  <input name="email" type="email" />
  <textarea name="message"></textarea>
  <button>Send</button>
</form>
```

Ele funciona, sim, na sua máquina. Você clica em **Send**, seu app de e-mail abre com os campos no corpo e você envia para si mesmo. A experiência de um visitante é diferente:

Diagrama: O que um formulário mailto: faz no dispositivo de um visitante

1. O visitante clica em Enviar. O navegador não envia o formulário para lugar nenhum; ele entrega um link mailto: ao sistema operacional.
2. Se não houver app de e-mail nem handler web configurado, o que é comum em notebooks de trabalho e para quem usa o Gmail no navegador, nada visível acontece ou o sistema pergunta qual app usar.
3. Se houver um configurado, um rascunho abre no app de e-mail do próprio visitante, com os campos colados no corpo.
4. O visitante precisa clicar em Enviar uma segunda vez, pela própria conta. Muitos fecham o rascunho, e você nunca fica sabendo que tentaram.

Todo passo depois do primeiro acontece no dispositivo do visitante, então você não consegue ver onde as pessoas desistem.

Quando uma mensagem chega, o corpo é feito de linhas `name=value` cruas, porque é isso que a codificação `text/plain` produz:

`O que chega`:

```text
name=Ada Lovelace
email=ada@example.com
message=Hi, do you take on small bathroom jobs in March?
```

Os outros caminhos até o Gmail funcionam, mas cada um precisa de um servidor rodando por sua conta:

| Caminho | O que exige | Porém |
| --- | --- | --- |
| SMTP do Gmail com senha de app | Um servidor que rode código, e verificação em duas etapas na conta Google | A senha pode enviar como você de qualquer lugar, então nunca pode chegar ao navegador. O Google também limita quanto uma conta pessoal envia por dia |
| Google Apps Script com `MailApp` | Um script publicado como web app | Contas pessoais podem mandar e-mail para 100 destinatários por dia a partir de scripts. A URL é pública e sem proteção contra spam, então um único bot pode esgotar a cota |
| Um backend de formulários | A URL do backend no `action` | O e-mail vem do endereço do serviço, não do seu. O reply-to resolve a parte que importa |

O Apps Script merece uma olhada mais de perto, porque é o caminho que a maioria dos tutoriais sugere. Você escreve uma função `doPost`, publica como um web app que qualquer um pode chamar e aponta o formulário para a URL dele. Funciona, mas um envio simples de formulário deixa o visitante numa página servida pelo domínio do Google em vez do seu, todo bot que encontrar a URL pode esgotar a cota do dia, e o script roda como você, então um bug nele pode mandar e-mail para qualquer pessoa a partir da sua conta. Além disso, toda mudança nos campos do formulário passa a ser responsabilidade sua.

## Envie o formulário para o Gmail

Este é um formulário para um pequeno prestador de serviços. O campo `job` deixa a caixa de entrada fácil de percorrer, e `email` tem esse nome para que as respostas vão para o visitante:

`contact.html`:

```html
<form action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
  <label for="name">Your name</label>
  <input id="name" name="name" autocomplete="name" required />

  <label for="email">Email for our reply</label>
  <input id="email" name="email" type="email" autocomplete="email" required />

  <label for="job">What do you need?</label>
  <select id="job" name="job" required>
    <option value="">Choose one</option>
    <option value="repair">A repair</option>
    <option value="quote">A quote for a new job</option>
    <option value="other">Something else</option>
  </select>

  <label for="message">Details</label>
  <textarea id="message" name="message" rows="5" required></textarea>

  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden />
  <button>Send to our inbox</button>
</form>
```

1. Crie um formulário no Ikiform e troque `frm_xxxxxxxxxxxxxxxx` pelo id dele.
2. Se você se cadastrou com seu endereço do Gmail, já recebe os e-mails como dono do workspace. Caso contrário, abra as configurações de **Notifications** do formulário, digite o endereço do Gmail em **Add someone outside the workspace** e clique em **Send link**.
3. Abra o e-mail de confirmação no Gmail e confirme. Até lá, o endereço mostra **Waiting for confirmation** e não recebe nada.
4. Adicione seu domínio em **Allowed domains** do formulário, publique a página e envie um teste.

## Tire do spam com um filtro do Gmail

O primeiro e-mail de um remetente novo pode cair em **Spam** ou **Promoções**. Um filtro no remetente resolve isso de vez. No Gmail, abra as opções de pesquisa, coloque `notifications@ikiform.com` em **De**, clique em **Criar filtro** e marque **Nunca enviar para spam**, **Aplicar o marcador**, **Sempre marcar como importante** e **Categorizar como: Principal**, o que o mantém fora de **Promoções**.

Ou importe o filtro. Este é o formato que o próprio **Exportar** de filtros do Gmail grava; o Google não o documenta à parte, então se a importação falhar, crie o filtro à mão como acima. Salve como `mailFilters.xml` e vá em **Configurações**, **Ver todas as configurações**, **Filtros e endereços bloqueados**, **Importar filtros**:

`mailFilters.xml`:

```text
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:apps="http://schemas.google.com/apps/2006">
  <title>Mail Filters</title>
  <entry>
    <category term="filter"></category>
    <title>Mail Filter</title>
    <content></content>
    <apps:property name="from" value="notifications@ikiform.com"/>
    <apps:property name="label" value="Website"/>
    <apps:property name="shouldNeverSpam" value="true"/>
    <apps:property name="shouldAlwaysMarkAsImportant" value="true"/>
    <apps:property name="smartLabelToApply" value="^smartlabel_personal"/>
  </entry>
</feed>
```

Crie o marcador **Website** antes, ou renomeie-o no arquivo. Um único filtro cobre todos os formulários, porque todas as notificações vêm do mesmo endereço. Para separar formulários em marcadores diferentes, filtre pelo assunto, como `subject:("New submission: Quote request")`.

> O Gmail ignora pontos e tudo o que vem depois de um sinal de mais na parte antes do @. Adicionar `you+site@gmail.com` como destinatário entrega na sua caixa de entrada normal, e um filtro em **Para** consegue separar os e-mails do site de todo o resto. Ele conta como endereço de fora, então confirma por link como qualquer outro.

## Respondendo pelo Gmail

O Gmail respeita o header reply-to, então **Responder** endereça ao visitante. Sua resposta sai do seu endereço do Gmail, sem o Ikiform em nenhum ponto da conversa.

- Para responder pelo endereço da sua empresa, adicione-o em **Configurações**, **Contas e importação**, **Enviar e-mail como**, e escolha-o na linha **De** quando responder.
- O Gmail pode agrupar notificações com o mesmo assunto numa única conversa, porque o assunto é sempre `New submission:` mais o nome do formulário. Desative a **Visualização de conversa** nas configurações do Gmail se preferir ver uma linha por mensagem.
- Os resumos por hora não têm reply-to, já que cobrem muitos visitantes. Responda a eles pelos links do painel.

## Confira se funciona

1. Preencha o formulário na sua página e envie. Você cai na sua página de agradecimento, ou na hospedada pelo Ikiform.
2. Encontre o e-mail no Gmail. Ele tem o seu marcador e não está em **Spam** nem em **Promoções**.
3. Clique em **Responder**. A linha **Para** é o endereço digitado no formulário.
4. Envie com o honeypot preenchido, `_gotcha=bot`. Ele ainda recebe uma resposta de sucesso, mas o envio é armazenado como spam e não dispara e-mail nem webhook.
5. Não chegou nada? Mude o filtro de status do painel para **Spam**. Spam recebe a mesma resposta de sucesso de um envio real.

## Pegadinhas

- **Aliases do Google Workspace.** Se o destinatário é um alias ou um Google Group, as configurações do próprio grupo decidem se remetentes de fora são aceitos. Envie um teste antes de contar com isso.
- **A confirmação vai para o spam.** O e-mail com o link de confirmação também vem do Ikiform. Se ele não aparecer, olhe em **Spam** e marque-o como não spam.
- **Vários endereços do Gmail.** Cada formulário manda e-mail para até 10 endereços no total, e cada endereço de fora confirma separadamente.
- **Links mailto: antigos em outros lugares.** Um link `mailto:` no rodapé não tem problema como link. O problema é só `mailto:` como `action` de um formulário.

## Perguntas

### Posso enviar os envios do formulário para um endereço do Google Workspace?

Sim. Um endereço do Workspace funciona como qualquer outro destinatário. Se for um Google Group ou um alias, confira se o grupo aceita e-mails de remetentes de fora e depois envie um teste.

### Por que meu formulário com mailto: não envia nada?

Um action mailto: nunca envia. Ele pede ao dispositivo do visitante que abra um app de e-mail com um rascunho. Se não houver nenhum configurado, nada visível acontece, e se houver, o visitante ainda precisa clicar em Enviar nele.

### Posso usar o SMTP do Gmail para enviar os e-mails do formulário?

Só a partir de um servidor seu, com uma senha de app numa conta que tenha verificação em duas etapas. Nunca coloque essa senha em código do navegador; ela pode enviar e-mails como você.

### Como evito que os e-mails do formulário caiam no spam do Gmail?

Crie um filtro no Gmail para e-mails de notifications@ikiform.com e marque Nunca enviar para spam. Aplique um marcador ao mesmo tempo, para as mensagens do formulário ficarem fáceis de achar.

### Posso responder pelo Gmail à pessoa que preencheu o formulário?

Sim, quando o campo de e-mail do formulário se chama email, email_address, your_email, reply_to, contact_email, ou quando o formulário envia um campo _replyto. Aí o Gmail coloca o visitante na linha Para quando você clica em Responder.

## Mais guias

- [Receber um formulário no e-mail](https://ikiform.com/pt-br/guides/send-form-to-email.md): Receba todo envio de formulário na caixa de entrada sem servidor de e-mail: por que mailto: e mail() do PHP falham, e uma configuração que filtra spam e permite responder.
- [Responder pela caixa de entrada](https://ikiform.com/pt-br/guides/send-form-to-email/reply-to.md): Faça o Reply de uma notificação de formulário responder a quem preencheu: quais nomes de campo funcionam, quando usar _replyto e por que as respostas se perdem.
- [Sem PHP](https://ikiform.com/pt-br/guides/send-form-to-email/without-php.md): Substitua um script contact.php que chama mail() por um formulário que envia a um endpoint hospedado, mantendo seus nomes de campo, sua página de agradecimento e as respostas.
- [Vários destinatários](https://ikiform.com/pt-br/guides/send-form-to-email/multiple-recipients.md): Mande um formulário por e-mail para a equipe toda, ou encaminhe cada mensagem à pessoa certa pelo assunto, sem deixar o próprio formulário escolher quem recebe.
- [Alternativa ao EmailJS](https://ikiform.com/pt-br/guides/send-form-to-email/emailjs-alternative.md): Tire um formulário de contato do EmailJS: por que chaves de e-mail no navegador são um risco, o que muda no seu código e do que você abre mão, como a resposta automática.
- [Next.js](https://ikiform.com/pt-br/guides/send-form-to-email/nextjs.md): Duas formas de mandar um formulário Next.js por e-mail com uma Server Action: enviar você mesmo com Resend ou Nodemailer, ou encaminhar a um backend de formulários, comparadas com honestidade.
