API de e-mail

No momento, ainda não lançamos nenhum wrapper de API, mas planejamos fazê-lo em um futuro próximo. Envie um email para api@forwardemail.net se você quiser ser notificado quando o wrapper de API de uma linguagem de programação específica for lançado. Enquanto isso, você pode usar essas bibliotecas de solicitação HTTP recomendadas em seu aplicativo ou simplesmente usar ondulação como nos exemplos abaixo.

LínguaBiblioteca
Rubifaraday
Pitãosolicitações de
JavaOkHttp
PHPbeber
Javascriptsuperagente (somos mantenedores)
Node.jssuperagente (somos mantenedores)
Vainet / http
.NETRestSharp

O caminho de URI base HTTP atual é: https://api.forwardemail.net.

Todos os endpoints exigem sua Chave API para ser definido como o valor "username" da solicitação Autorização básica cabeçalho. Não se preocupe - os exemplos são fornecidos abaixo para você, se você não tiver certeza do que é isso.

Se ocorrer algum erro, o corpo da resposta da solicitação da API conterá uma mensagem de erro detalhada.

CódigoNome
200OK
400Pedido ruim
401Não autorizado
403Proibido
404Não encontrado
429Muitas solicitações
500Erro do Servidor Interno
501Não implementado
502Gateway incorreto
503Serviço indisponível
504Tempo limite do gateway
Dica: Se você receber um código de status 5xx (o que não deve acontecer), entre em contato conosco em api@forwardemail.net e nós o ajudaremos a resolver seu problema imediatamente.

Nosso serviço é traduzido para mais de 25 idiomas diferentes. Todas as mensagens de resposta da API são traduzidas para a última localidade detectada do usuário que está fazendo a solicitação da API. Você pode substituir isso passando um personalizado Accept-Language cabeçalho. Sinta-se à vontade para experimentá-lo usando o menu suspenso de idiomas na parte inferior desta página.

Se você deseja ser notificado quando a paginação estiver disponível, envie um e-mail api@forwardemail.net.

Recuperar registros

Nossa API permite programaticamente que você baixe logs para sua conta. O envio de uma solicitação para esse endpoint processará todos os registros da sua conta e os enviará por e-mail como anexo (Gzip comprimido CSV arquivo de planilha) depois de concluído.

Isso permite criar trabalhos em segundo plano com um Trabalho Cron ou usando nosso Software de agendamento de tarefas Node.js Bree para receber logs sempre que desejar. Observe que esse endpoint está limitado a 10 solicitações por dia.

O anexo é a forma minúscula de email-deliverability-logs-YYYY-MM-DD-h-mm-A-z.csv.gz e o próprio email contém um breve resumo dos logs recuperados. Você também pode baixar logs a qualquer momento em Minha conta → Registros

GET /v1/logs/download

Parâmetro de consultaRequeridosTipoDescrição
domainNãoCadeia de caracteres (FQDN)Filtre os logs por domínio totalmente qualificado ("FQDN"). Se você não fornecer isso, todos os logs de todos os domínios serão recuperados.
qNãoCordaPesquise registros por e-mail, domínio, nome alternativo, endereço IP ou data (M/Y, M/D/YY, M-D, M-D-YY, ou M.D.YY formatar).

Solicitação de exemplo:

curl https://api.forwardemail.net/v1/logs/download \
  -u API_TOKEN:

Exemplo de Cron job (à meia-noite todos os dias):

0 0 * * * /usr/bin/curl https://api.forwardemail.net/v1/logs/download -u API_TOKEN: &>/dev/null

Observe que você pode usar serviços como Crontab.guru para validar a sintaxe da expressão do seu cron job.

Exemplo de Cron job (à meia-noite todos os dias e com registros do dia anterior):

Para MacOS:

0 0 * * * /usr/bin/curl https://api.forwardemail.net/v1/logs/download?q=`date -v-1d -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null

Para Linux e Ubuntu:

0 0 * * * /usr/bin/curl https://api.forwardemail.net/v1/logs/download?q=`date --date "-1 days" -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null

Criar Conta

POST /v1/account

Parâmetro do corpoRequeridosTipoDescrição
emailsimSeqüência de caracteres (e-mail)Endereço de e-mail
passwordsimCordaSenha

Solicitação de exemplo:

curl -X POST https://api.forwardemail.net/v1/account \
  -u API_TOKEN: \
  -d "email=user%40gmail.com"

Recupere a conta

GET /v1/account

Solicitação de exemplo:

curl https://api.forwardemail.net/v1/account \
  -u API_TOKEN:

Atualizar conta

PUT /v1/account

Parâmetro do corpoRequeridosTipoDescrição
emailNãoSeqüência de caracteres (e-mail)Endereço de e-mail
given_nameNãoCordaPrimeiro nome
family_nameNãoCordaÚltimo nome
avatar_urlNãoSequência (URL)Link para a imagem do avatar

Solicitação de exemplo:

curl -X PUT https://api.forwardemail.net/v1/account \
  -u API_TOKEN: \
  -d "email=user%40gmail.com"

Verifique se você seguiu as instruções de configuração do seu domínio. Estas instruções podem ser encontradas em Minha conta → Domínios → Configurações → Configuração SMTP de saída. Você precisa garantir a configuração de DKIM, Return-Path e DMARC para enviar SMTP de saída com seu domínio.

Listar e-mails

Observe que este endpoint não retorna um e-mail já criado message, headers, accepted, nem rejectedErrors propriedades.

Para retornar essas propriedades e seus valores, use o Recuperar e-mail terminal com um ID de e-mail.

Este endpoint retornará no máximo 50 resultados de cada vez. Se você quiser consultar várias páginas, anexe ?page=NUMBER onde NUMBER é um número inteiro, por ex. ?page=1.

GET /v1/emails

Parâmetro de consultaRequeridosTipoDescrição
qNãoString (suportado por RegExp)Pesquise e-mails por metadados
domainNãoString (suportado por RegExp)Pesquise e-mails por nome de domínio
pageNãoNúmeroPágina para retorno de resultados (o padrão é 1)
`limiteNãoNúmeroNúmero de resultados por página a serem retornados (o padrão é 50 – o máximo é 50 e o mínimo é 10)

Solicitação de exemplo:

curl https://api.forwardemail.net/v1/emails \
  -u API_TOKEN:

Criar e-mail

Nossa API para criar um e-mail é inspirada e aproveita a configuração de opção de mensagem do Nodemailer. Por favor, adie para o Configuração de mensagem do Nodemailer para todos os parâmetros corporais abaixo.

Note que com exceção de envelope e dkim (uma vez que os definimos automaticamente para você), oferecemos suporte a todas as opções do Nodemailer. Nós definimos automaticamente disableFileAccess e disableUrlAccess opções para true para fins de segurança.

Você deve passar a única opção de raw com seu e-mail completo, incluindo cabeçalhos ou passe as opções de parâmetros individuais do corpo abaixo.

POST /v1/emails

Parâmetro do corpoRequeridosTipoDescrição
fromNãoSeqüência de caracteres (e-mail)O endereço de e-mail do remetente (deve existir como um alias do domínio).
toNãoSequência ou matrizLista separada por vírgulas ou uma matriz de destinatários para o cabeçalho "Para".
ccNãoSequência ou matrizLista separada por vírgulas ou uma matriz de destinatários para o cabeçalho "Cc".
bccNãoSequência ou matrizLista separada por vírgulas ou uma matriz de destinatários para o cabeçalho "Bcc".
subjectNãoCordaO assunto do e-mail.
textNãoString ou BufferA versão em texto simples da mensagem.
htmlNãoString ou BufferA versão HTML da mensagem.
attachmentsNãoVariedadeUma matriz de objetos anexos (consulte Campos comuns do Nodemailer).
senderNãoCordaO endereço de e-mail para o cabeçalho "Remetente" (consulte Campos mais avançados do Nodemailer).
replyToNãoCordaO endereço de e-mail para o cabeçalho "Responder para".
inReplyToNãoCordaO Message-ID ao qual a mensagem está em resposta.
referencesNãoSequência ou matrizLista separada por espaços ou uma matriz de IDs de mensagens.
attachDataUrlsNãoboleanoSe true então converte data: imagens no conteúdo HTML da mensagem para anexos incorporados.
watchHtmlNãoCordaUma versão HTML específica do Apple Watch da mensagem (de acordo com os documentos do Nodemailer, os relógios mais recentes não exigem que isso seja definido).
ampNãoCordaUma versão HTML específica de AMP4EMAIL da mensagem (consulte Exemplo do Nodemailer).
icalEventNãoObjetoUm evento iCalendar para usar como um conteúdo de mensagem alternativo (consulte Eventos do calendário do Nodemailer).
alternativesNãoVariedadeUma matriz de conteúdo de mensagem alternativo (consulte Conteúdo alternativo do Nodemailer).
encodingNãoCordaCodificação para as strings de texto e HTML (o padrão é "utf-8", mas suporta "hex" e "base64" valores de codificação também).
rawNãoString ou BufferUma mensagem formatada RFC822 gerada de forma personalizada para usar (em vez de uma gerada pelo Nodemailer – consulte Fonte personalizada do Nodemailer).
textEncodingNãoCordaCodificação que é forçada a ser usada para valores de texto (seja "quoted-printable" ou "base64"). O valor padrãoéo valor mais próximo detectado (para uso ASCII "quoted-printable").
priorityNãoCordaNível de prioridade para o e-mail (pode ser "high", "normal" (padrão) ou "low"). Observe que um valor de "normal" não define um cabeçalho de prioridade (este é o comportamento padrão). Se um valor de "high" ou "low" está definido, então o X-Priority, X-MSMail-Priority, e Importance cabeçalhos será definido de acordo.
headersNãoObjeto ou MatrizUm objeto ou uma matriz de campos de cabeçalho adicionais para definir (consulte Cabeçalhos personalizados do Nodemailer).
messageIdNãoCordaUm valor Message-ID opcional para o cabeçalho "Message-ID" (um valor padrão será criado automaticamente se não for definido - observe que o valor deve aderir à especificação RFC2822).
dateNãoString ou DataUm valor de data opcional que será usado se o cabeçalho de data estiver ausente após a análise, caso contrário, a string UTC atual será usada se não for definida. O cabeçalho da data não pode ser mais de 30 dias antes da hora atual.
listNãoObjetoUm objeto opcional de List-* cabeçalhos (ver Cabeçalhos de lista do Nodemailer).

Solicitação de exemplo:

curl -X POST https://api.forwardemail.net/v1/emails \
  -u API_TOKEN: \
  -d "from=alias@example.com" \
  -d "to=user%40gmail.com" \
  -d "subject=test" \
  -d "text=test"

Solicitação de exemplo:

curl -X POST https://api.forwardemail.net/v1/emails \
  -u API_TOKEN: \
  -d "raw=`cat file.eml`"

Recuperar e-mail

GET /v1/emails/:id

Solicitação de exemplo:

curl https://api.forwardemail.net/v1/emails/:id \
  -u API_TOKEN:

Excluir e-mail

A exclusão de e-mail definirá o status como "rejected" (e subsequentemente não processá-lo na fila) se e somente se o status atual for um dos "pending", "queued", ou "deferred". Podemos limpar e-mails automaticamente após 30 dias após terem sido criados e/ou enviados - portanto, você deve manter uma cópia dos e-mails SMTP de saída em seu cliente, banco de dados ou aplicativo. Você pode fazer referência ao nosso valor de ID de e-mail em seu banco de dados, se desejar - esse valor é retornado de ambos Criar e-mail e Recuperar e-mail pontos de extremidade.

DELETE /v1/emails/:id

Solicitação de exemplo:

curl -X DELETE https://api.forwardemail.net/v1/emails/:id \
  -u API_TOKEN:

Dica: Endpoints de domínio com o nome de um domínio /v1/domains/:domain_name pois seus caminhos são intercambiáveis com o ID de um domínio :domain_id. Isso significa que você pode fazer referência ao domínio por seu name ou id valor.

Listar domínios

GET /v1/domains

Parâmetro de consultaRequeridosTipoDescrição
qNãoString (suportado por RegExp)Pesquise domínios por nome
nameNãoString (suportado por RegExp)Pesquise domínios por nome

Solicitação de exemplo:

curl https://api.forwardemail.net/v1/domains \
  -u API_TOKEN:

Criar domínio

POST /v1/domains

Parâmetro do corpoRequeridosTipoDescrição
domainsimString (FQDN ou IP)Nome de domínio totalmente qualificado ("FQDN") ou endereço IP
planNãoString (enumerável)Tipo de plano (deve ser "free", "enhanced_protection", ou "team", padrão para "free" ou o plano pago atual do usuário, se estiver em um)
catchallNãoString (endereços de e-mail delimitados) ou BooleanoCrie um alias pega-tudo padrão, o padrão é true (E se true ele usará o endereço de e-mail do usuário da API como destinatário e, se false nenhum catch-all será criado). Se uma String for passada, então é uma lista delimitada de endereços de e-mail para usar como destinatários (separados por quebra de linha, espaço e/ou vírgula)
has_adult_content_protectionNãoboleanoSe deve ativar a proteção de conteúdo adulto do Spam Scanner neste domínio
has_phishing_protectionNãoboleanoSe a proteção contra phishing do Spam Scanner deve ser habilitada neste domínio
has_executable_protectionNãoboleanoSe deve habilitar a proteção executável do Spam Scanner neste domínio
has_virus_protectionNãoboleanoSe deve habilitar a proteção contra vírus do Spam Scanner neste domínio
has_recipient_verificationNãoboleanoPadrão de domínio global para exigir que os destinatários de alias cliquem em um link de verificação de e-mail para que os e-mails fluam
retention_daysNãoNúmeroNúmero inteiro entre 0 e 30 que corresponde ao número de dias de retenção para armazenar e-mails SMTP de saída, uma vez entregues com êxito ou com erros permanentes. O padrão é 0, o que significa que os e-mails SMTP de saída são eliminados e editados imediatamente para sua segurança.

Solicitação de exemplo:

curl -X POST https://api.forwardemail.net/v1/domains \
  -u API_TOKEN: \
  -d domain=example.com \
  -d plan=free

Recuperar domínio

GET /v1/domains/example.com

Solicitação de exemplo:

curl https://api.forwardemail.net/v1/domains/example.com \
  -u API_TOKEN:

Verificar registros de domínio

GET /v1/domains/example.com/verify-records

Solicitação de exemplo:

curl https://api.forwardemail.net/v1/domains/example.com/verify-records \
  -u API_TOKEN:

Atualizar domínio

PUT /v1/domains/example.com

Parâmetro do corpoRequeridosTipoDescrição
smtp_portNãoString ou NumberPorta personalizada para configurar para encaminhamento SMTP (o padrão é "25")
has_adult_content_protectionNãoboleanoSe deve ativar a proteção de conteúdo adulto do Spam Scanner neste domínio
has_phishing_protectionNãoboleanoSe a proteção contra phishing do Spam Scanner deve ser habilitada neste domínio
has_executable_protectionNãoboleanoSe deve habilitar a proteção executável do Spam Scanner neste domínio
has_virus_protectionNãoboleanoSe deve habilitar a proteção contra vírus do Spam Scanner neste domínio
has_recipient_verificationNãoboleanoPadrão de domínio global para exigir que os destinatários de alias cliquem em um link de verificação de e-mail para que os e-mails fluam
retention_daysNãoNúmeroNúmero inteiro entre 0 e 30 que corresponde ao número de dias de retenção para armazenar e-mails SMTP de saída, uma vez entregues com êxito ou com erros permanentes. O padrão é 0, o que significa que os e-mails SMTP de saída são eliminados e editados imediatamente para sua segurança.

Solicitação de exemplo:

curl -X PUT https://api.forwardemail.net/v1/domains/example.com \
  -u API_TOKEN:

Excluir domínio

DELETE /v1/domains/:domain_name

Solicitação de exemplo:

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name \
  -u API_TOKEN:

Aceitar convite de domínio

GET /v1/domains/:domain_name/invites

Solicitação de exemplo:

curl https://api.forwardemail.net/v1/domains/:domain_name/invites \
  -u API_TOKEN:

Criar convite de domínio

POST /v1/domains/example.com/invites

Parâmetro do corpoRequeridosTipoDescrição
emailsimSeqüência de caracteres (e-mail)Endereço de email para convidar para a lista de membros do domínio
groupsimString (enumerável)Grupo para adicionar o usuário à associação de domínio (pode ser um dos "admin" ou "user")

Solicitação de exemplo:

curl -X POST https://api.forwardemail.net/v1/domains/example.com/invites \
  -u API_TOKEN: \
  -d "email=user%40gmail.com" \
  -d group=admin

Remover convite de domínio

DELETE /v1/domains/:domain_name/invites

Parâmetro do corpoRequeridosTipoDescrição
emailsimSeqüência de caracteres (e-mail)Endereço de email para remover da lista de membros do domínio

Solicitação de exemplo:

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/invites \
  -u API_TOKEN:

Atualizar membro do domínio

PUT /v1/domains/example.com/members/:member_id

Parâmetro do corpoRequeridosTipoDescrição
groupsimString (enumerável)Grupo para atualizar o usuário para a associação de domínio (pode ser um dos "admin" ou "user")

Solicitação de exemplo:

curl -X PUT https://api.forwardemail.net/v1/domains/example.com/members/:member_id \
  -u API_TOKEN:

Remover membro do domínio

DELETE /v1/domains/:domain_name/members/:member_id

Solicitação de exemplo:

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/members/:member_id \
  -u API_TOKEN:

Listar aliases de domínio

GET /v1/domains/example.com/aliases

Parâmetro de consultaRequeridosTipoDescrição
qNãoString (suportado por RegExp)Pesquise aliases em um domínio por nome, rótulo ou destinatário
nameNãoString (suportado por RegExp)Pesquise aliases em um domínio por nome
recipientNãoString (suportado por RegExp)Pesquisar aliases em um domínio por destinatário

Solicitação de exemplo:

curl https://api.forwardemail.net/v1/domains/example.com/aliases \
  -u API_TOKEN:

Crie um novo alias de domínio

POST /v1/domains/example.com/aliases

Parâmetro do corpoRequeridosTipoDescrição
nameNãoCordaNome do alias (se não for fornecido ou se estiver em branco, um alias aleatório será gerado)
recipientsNãoSequência ou matrizLista de destinatários (deve ser separada por quebra de linha/espaço/vírgula String ou Array de endereços de e-mail válidos, nomes de domínio totalmente qualificados ("FQDN"), endereços IP e/ou URLs de webhook - e se não for fornecido ou for um vazio Array, o e-mail do usuário que faz a solicitação da API será definido como destinatário)
descriptionNãoCordaDescrição do alias
labelsNãoSequência ou matrizLista de etiquetas (deve ser String ou Matriz separadas por quebra de linha / espaço / vírgula)
has_recipient_verificationNãoboleanoExigir que os destinatários cliquem em um link de verificação de e-mail para que os e-mails possam fluir (o padrão é a configuração do domínio se não estiver explicitamente definido no corpo da solicitação)
is_enabledNãoboleanoSeja para ativar ou desativar este alias (se desativado, os e-mails não serão roteados para lugar nenhum, mas retornarão códigos de status de sucesso). Se um valor for passado, ele será convertido em booleano usando boleano)
has_imapNãoboleanoSe deve ativar ou desativar o armazenamento IMAP para este alias (se desativado, os e-mails recebidos não serão armazenados em Armazenamento IMAP. Se um valor for passado, ele será convertido em booleano usando boleano)
has_pgpNãoboleanoSeja para ativar ou desativar Criptografia OpenPGP para Armazenamento de e-mail criptografado IMAP/POP3 usando o apelido' public_key.
public_keyNãoCordaChave pública OpenPGP no formato ASCII Armor (clique aqui para ver um exemplo; por exemplo. Chave GPG para support@forwardemail.net). Isto só se aplica se você tiver has_pgp definido como true. Saiba mais sobre criptografia ponta a ponta em nossas Perguntas frequentes.

Solicitação de exemplo:

curl -X POST https://api.forwardemail.net/v1/domains/example.com/aliases \
  -u API_TOKEN:

Recuperar alias de domínio

Você pode recuperar um alias de domínio por seu id ou seu name valor.

GET /v1/domains/:domain_name/aliases/:alias_id

Solicitação de exemplo:

curl https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_id \
  -u API_TOKEN:

GET /v1/domains/:domain_name/aliases/:alias_name

Solicitação de exemplo:

curl https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_name \
  -u API_TOKEN:

Atualizar alias do domínio

PUT /v1/domains/example.com/aliases/:alias_id

Parâmetro do corpoRequeridosTipoDescrição
nameNãoCordaNome alternativo
recipientsNãoSequência ou matrizLista de destinatários (deve ser String ou matriz separada por vírgula / espaço / vírgula de endereços de email válidos, nomes de domínio totalmente qualificados ("FQDN"), endereços IP e / ou URLs de webhook)
descriptionNãoCordaDescrição do alias
labelsNãoSequência ou matrizLista de etiquetas (deve ser String ou Matriz separadas por quebra de linha / espaço / vírgula)
has_recipient_verificationNãoboleanoExigir que os destinatários cliquem em um link de verificação de e-mail para que os e-mails possam fluir (o padrão é a configuração do domínio se não estiver explicitamente definido no corpo da solicitação)
is_enabledNãoboleanoSeja para ativar ou desativar este alias (se desativado, os e-mails não serão roteados para lugar nenhum, mas retornarão códigos de status bem-sucedidos)
has_imapNãoboleanoSe deve ativar ou desativar o armazenamento IMAP para este alias (se desativado, os e-mails recebidos não serão armazenados em Armazenamento IMAP. Se um valor for passado, ele será convertido em booleano usando boleano)
has_pgpNãoboleanoSeja para ativar ou desativar Criptografia OpenPGP para Armazenamento de e-mail criptografado IMAP/POP3 usando o apelido' public_key.
public_keyNãoCordaChave pública OpenPGP no formato ASCII Armor (clique aqui para ver um exemplo; por exemplo. Chave GPG para support@forwardemail.net). Isto só se aplica se você tiver has_pgp definido como true. Saiba mais sobre criptografia ponta a ponta em nossas Perguntas frequentes.

Solicitação de exemplo:

curl -X PUT https://api.forwardemail.net/v1/domains/example.com/aliases/:alias_id \
  -u API_TOKEN:

Excluir alias do domínio

DELETE /v1/domains/:domain_name/aliases/:alias_id

Solicitação de exemplo:

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_id \
  -u API_TOKEN: