n8n-nodes-yahoo-mail
v1.0.22
Published
Community node do n8n para Yahoo Mail via IMAP/SMTP
Maintainers
Readme
n8n-nodes-yahoo-mail
Community Node do n8n para integração com Yahoo Mail usando IMAP/SMTP.
Permite gerenciar emails do Yahoo Mail de forma automatizada sem necessidade de OAuth2 - apenas usando email + senha de aplicativo.
🚀 Funcionalidades
📥 Yahoo Mail Trigger
- Tempo real: Monitora emails novos a cada 10 segundos (configurável)
- Múltiplas pastas: Seleção dinâmica via IMAP (Inbox, Bulk, custom)
- Apenas emails novos: Não dispara para emails já existentes
- Timezone UTC: Comparações consistentes independente do fuso
- Stop completo: Para adequadamente quando desativado
- Rate limit protection: Proteção automática contra bloqueios
- Filtros avançados: Por data, texto, anexos, status de leitura
📧 Yahoo Mail Actions
Mensagens:
- ✅ Listar mensagens com filtros
- ✅ Obter mensagem completa (headers + corpo)
- ✅ Baixar mensagem em formato RFC822
- ✅ Listar e baixar anexos
- ✅ Marcar mensagens (lida, sinalizada, respondida)
- ✅ Mover mensagens entre pastas
- ✅ Excluir mensagens (soft/hard delete)
- ✅ Enviar novas mensagens
- ✅ Responder mensagens (mantém threading)
- ✅ Encaminhar mensagens
Pastas:
- ✅ Listar pastas de email
- ✅ Criar/excluir pastas
- ✅ Esvaziar lixeira
📋 Pré-requisitos
- Conta Yahoo com 2FA habilitado
- Senha de aplicativo gerada (não a senha normal da conta)
Como gerar senha de aplicativo no Yahoo:
- Acesse Configurações da Conta Yahoo
- Vá em Segurança > Gerar senhas de app
- Selecione Outro (personalizado)
- Digite um nome (ex: "n8n-automation")
- Clique em Gerar
- Copie a senha gerada - você vai precisar dela para configurar as credenciais
🛠 Instalação
Self-hosted n8n
Opção 1: npm global
npm install n8n-nodes-yahoo-mail --location=globalOpção 2: Pasta customizada
- Copie a pasta do projeto para
${N8N_USER_FOLDER}/custom/ - Reinicie o n8n
Opção 3: Via interface n8n
- Vá em Settings → Community Nodes
- Clique em Install
- Digite:
n8n-nodes-yahoo-mail - Clique em Install
n8n Cloud
Community nodes não são suportados no n8n Cloud. Use apenas em instalações self-hosted.
⚙️ Configuração
1. Criar Credenciais
- No n8n, vá em Credentials → Add new
- Procure por "Yahoo App Password (IMAP/SMTP)"
- Configure:
Email: [email protected]
App Password: [senha de aplicativo gerada]
IMAP Host: imap.mail.yahoo.com (padrão)
IMAP Port: 993 (padrão)
SMTP Host: smtp.mail.yahoo.com (padrão)
SMTP Port: 465 (padrão)
Use STARTTLS: false (padrão)2. Testar Conexão
Clique em "Test" para verificar se as credenciais estão corretas.
📖 Exemplos de Uso
Exemplo 1: Monitor de emails importantes
{
"nodes": [
{
"name": "Yahoo Mail Trigger",
"type": "n8n-nodes-yahoo-mail.yahooMailTrigger",
"parameters": {
"mailboxes": ["Inbox"],
"filters": {
"unread": true,
"search": "urgente OR importante"
},
"behavior": {
"markAsSeen": true
}
}
},
{
"name": "Slack Notification",
"type": "n8n-nodes-base.slack",
"parameters": {
"message": "📧 Novo email importante de: {{$json.from[0].address}}\nAssunto: {{$json.subject}}"
}
}
]
}Exemplo 2: Backup de anexos no Google Drive
{
"nodes": [
{
"name": "Yahoo Mail Trigger",
"type": "n8n-nodes-yahoo-mail.yahooMailTrigger",
"parameters": {
"mailboxes": ["Inbox", "Bulk"],
"filters": {
"hasAttachment": true
}
}
},
{
"name": "Get Attachments",
"type": "n8n-nodes-yahoo-mail.yahooMail",
"parameters": {
"resource": "message",
"operation": "getAttachments",
"mailbox": "{{$json.mailbox}}",
"uid": "{{$json.uid}}"
}
},
{
"name": "Download Each Attachment",
"type": "n8n-nodes-yahoo-mail.yahooMail",
"parameters": {
"resource": "message",
"operation": "downloadAttachment",
"mailbox": "{{$json.mailbox}}",
"uid": "{{$json.uid}}",
"partId": "{{$json.partId}}"
}
},
{
"name": "Upload to Google Drive",
"type": "n8n-nodes-base.googleDrive",
"parameters": {
"operation": "upload",
"name": "{{$json.fileName}}",
"binaryData": true
}
}
]
}Exemplo 3: Resposta automática
{
"nodes": [
{
"name": "Yahoo Mail Trigger",
"type": "n8n-nodes-yahoo-mail.yahooMailTrigger",
"parameters": {
"mailboxes": ["Inbox"],
"filters": {
"search": "cotação OR orçamento"
}
}
},
{
"name": "Send Auto Reply",
"type": "n8n-nodes-yahoo-mail.yahooMail",
"parameters": {
"resource": "message",
"operation": "reply",
"uid": "{{$json.uid}}",
"mailbox": "{{$json.mailbox}}",
"message": "Obrigado pelo seu contato! Retornaremos em até 24 horas."
}
},
{
"name": "Move to CRM Folder",
"type": "n8n-nodes-yahoo-mail.yahooMail",
"parameters": {
"resource": "message",
"operation": "move",
"uid": "{{$json.uid}}",
"mailbox": "{{$json.mailbox}}",
"toMailbox": "CRM"
}
}
]
}🔧 Desenvolvimento
Setup do projeto
# Clone o repositório
git clone https://github.com/seu-usuario/n8n-nodes-yahoo-mail.git
cd n8n-nodes-yahoo-mail
# Instale dependências
npm install
# Build
npm run build
# Lint
npm run lint
# Format
npm run formatEstrutura do projeto
n8n-nodes-yahoo-mail/
├── credentials/
│ └── YahooAppPasswordApi.credentials.ts
├── nodes/
│ ├── YahooMail.node.ts
│ └── YahooMailTrigger.node.ts
├── utils/
│ ├── imap.ts
│ ├── smtp.ts
│ └── normalize.ts
├── dist/ # Build output
├── package.json
├── tsconfig.json
└── README.mdStack tecnológica
- Node.js 20+ + TypeScript
- imapflow: Cliente IMAP moderno
- nodemailer: Envio de emails via SMTP
- n8n-workflow: Tipos e interfaces do n8n
🔒 Segurança
- ✅ Zero OAuth2: Sem tokens complexos de gerenciar
- ✅ Senhas de app: Mais seguro que senha principal
- ✅ Conexões TLS: Todas as conexões são criptografadas
- ✅ Sem logs de senha: Credenciais nunca são logadas
- ✅ Timeout de conexão: Evita conexões órfãs
⚠️ Limitações
- Tamanho de anexos: Máximo 25MB por anexo
- Rate limiting: Yahoo pode limitar conexões simultâneas
- Apenas self-hosted: Não funciona no n8n Cloud
- 2FA obrigatório: Yahoo requer autenticação de dois fatores
🐛 Troubleshooting
Erro de autenticação
Error: Invalid credentialsSolução: Verifique se está usando a senha de aplicativo (não a senha normal) e se o 2FA está habilitado.
Conexão recusada
Error: Connection refusedSolução: Verifique se as portas IMAP (993) e SMTP (465/587) não estão bloqueadas pelo firewall.
Trigger não recebe emails
Soluções:
- Verifique se há mensagens que atendem aos filtros
- Teste com
unread: falsepara ver todas as mensagens - Verifique se a conexão não foi interrompida (logs do n8n)
Anexos não baixam
Soluções:
- Verifique se o
partIdestá correto - Confirme se a mensagem realmente tem anexos
- Teste com mensagens menores primeiro
Trigger não para quando desativo
Solução:
- Use v1.0.10+ que tem cleanup rigoroso
- Verifique logs: deve aparecer "🏁 TRIGGER COMPLETAMENTE PARADO"
- Se persistir, reinicie o n8n completamente
Rate limit do Yahoo
Sintomas: "AUTHENTICATE rate limit hit", "Command failed" Soluções:
- Aguarde 30-60 minutos para rate limit expirar
- Use intervalos maiores (5+ minutos)
- Evite ativações frequentes durante desenvolvimento
- v1.0.10+ tem proteção automática
📄 Licença
MIT License - veja LICENSE para detalhes.
🤝 Contribuições
Contribuições são bem-vindas! Por favor:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
📞 Suporte
- 🐛 Issues: GitHub Issues
- 💬 Discussões: GitHub Discussions
- 📖 Documentação: n8n Community Nodes
Feito com ❤️ para a comunidade n8n
