|
| Publicidade |
|
|
|
Comentários de Usuários
Muito Bom
Apesar de nao ter testado! Achei muito bom o artigo , bem elaborado!
Quanto a um arquivo, acho interessante qualquer tipo de artigo sobre conexóes de socket
Erro / Dúvidas
Parabéns pelo trabalho e apenas um dúvida , após configurar o script com meus dados no teste o seguinte erro retornou:
conectou com: Resource id #1 conexão: 220 buvuma.terra.com.br ESMTP auth login: 503 Error: send HELO/EHLO first login: 502 Error: command not implemented senha: 502 Error: command not implemented mail from: 503 Error: send HELO/EHLO first recpt to: 503 Error: need MAIL command data: 503 Error: need RCPT command email: 221 Error: I can break rules, too. Goodbye. quit: Bem, vc sabe dizer oque está acontecendo? Obrigado Marcos Freitas
Erros..
Nao conheço muito bem esse assunto.. mas vou tentar ajudar...
auth login: 503 Error: send HELO/EHLO first Você tem que mandar os comandos HELO ou EHLO (comentados no artigo) antes de enviar outro comando pro servidor.. login: 502 Error: command not implemented O comando login não existe, esse servidor que voce esta usando não requer autenticação.. voce pode mandar um email por ele sem autenticar nada.. senha: 502 Error: command not implemented O comando senha não existe, esse servidor que voce esta usando não requer autenticação.. voce pode mandar um email por ele sem autenticar nada.. mail from: 503 Error: send HELO/EHLO first Você tem que mandar os comandos HELO ou EHLO (comentados no artigo) antes de enviar outro comando pro servidor.. recpt to: 503 Error: need MAIL command Como o comando mail não funcionou, ele da esse erro.. data: 503 Error: need RCPT command Como o comando rcpt não funcionou, ele da esse erro.. email: 221 Error: I can break rules, too. Goodbye. quit: Ele termina a conexão depois dos sucessivos erros...
E-mail com cópia?
- Preciso de Ajuda: Como é o "verbo" SMTP para enviar e-mail como cópia carbono e oculta?
- Outra coisa é: Eu atribui vários e-mails separados por ; na variavel "<$para>" e somente enviou para o primeiro e-mail, os outros destinatarios não receberam... Como resolver isso?
Re: E-mail com cópia?
1) Não é o caso de usar um verbo específico e, sim, dentro do verbo DATA utilizando as strings 'CC' e 'BCC' que significam Carbon Copy (Cc) e Blind Carbon Copy (Bcc).
2) Já fiz isso e funcionou, pode ser uma restrição do seu servidor (?) tente utilizar a vígula, ou ainda, um espaço depois do ponto-e-virgula.
ajuda
apareceu isso pra mim
220 mx.gmail.com ESMTP 33sm461219wra 250-mx.gmail.com at your service 250-SIZE 20971520 250-8BITMIME 250-STARTTLS 250 ENHANCEDSTATUSCODES 530 5.7.0 Must issue a STARTTLS command first 33sm461219wra tem algo errado?
Re: ajuda
Testei o script várias vezes e mais uma agora.
O resultado (escondendo o nome do servidor) está ai: conectou com: Resource id #2 conexão: 220 mail.xxx.yyy.br ESMTP auth login: 334 VXNlcm5hbWU6 login: 334 UGFzc3dvcmQ6 senha: 235 ok, go ahead (#2.0.0) mail from: 250 ok recpt to: 250 ok data: 354 go ahead email: 250 ok 1128544837 qp 13633 quit: 221 mail.xxx.yyy.br
mail
ola,
eu tive o seguinte resultado!!! conectou com: Resource id #2 conexão: 220 siaimail01.univali.br ESMTP auth login: 250 siaimail01.univali.br login: 334 VXNlcm5hbWU6 senha: 334 UGFzc3dvcmQ6 mail from: 235 Authentication successful recpt to: 250 Ok data: 554 : Helo command rejected: You are not me email: 354 Enter mail, end with "." on a line by itself quit: 554 Server said: 554 Error: no valid recipients sera q alguem pode me ajudar?
O meu resultado foi:
O primeiro erro solicitava o verbo Hello, então antes do AUTH-LOGIN coloquei:
fputs($conexao,"EHLO $servidor\r\n", 512)."<br>"; // envia a requisição echo "Hello: ".fgets($conexao, 512)."<br>"; O retorno foi esse: conectou com: Resource id #1 conexão: 220 scorpion4.uol.com.br ESMTP Hello: 250-xxx.yyy.com.br auth login: 250-PIPELINING login: 250-SIZE 13312000 senha: 250-VRFY mail from: 250-ETRN recpt to: 250 8BITMIME data: 503 Error: authentication not enabled email: 502 Error: command not implemented quit: 502 Error: command not implemented O que pode estar errado aí? Obrigado.
Re: O meu resultado foi:
Desculpem, fiz besteira:
O server que escolhi é o não autenticado do UOL, mas agora coloquei o smtps.uol.com.br e recebi as seguinte respostas: conectou com: Resource id #1 conexão: 220 scorpion5.uol.com.br ESMTP Hello: 250-scorpion5.uol.com.br auth login: 250-PIPELINING login: 250-SIZE 13312000 senha: 250-VRFY mail from: 250-ETRN recpt to: 250-AUTH LOGIN PLAIN data: 250-AUTH=LOGIN PLAIN email: 250 8BITMIME quit: 334 VXNlcm5hbWU6 O E-mail não foi enviado, acho que a resposta correta para senha seria 235 né?
Resolvi o problema
// insira o trecho novo após esta linha
echo "conectou com: ".$conexao."<br>"; echo "conexão: ".fgets($conexao, 1024)."<br>"; //trecho novo... fputs($conexao,"EHLO $servidor\r\n", 512); $aux=0; while ($aux==0) { $buffer=fgets($conexao, 512); $response = substr($buffer, 4, 8); if ($response != '8BITMIME'){ echo "loop: ".$buffer."<br>"; } else { echo "loop: ".$buffer."<br>"; $aux=1; } } // continuação do código fputs($conexao,"AUTH LOGIN\r\n", 512); ... O que percebi é que a maioria dos servidores de SMTP exigem o comando EHLO (Hello) E por sua vez, o número de respostas para EHLO varia de servidor para servidor, sendo que a última resposta é: 250 8BITMIME Por isso inclui este while que solicita respostas do servidor até que a resposta seja: 250 8BITMIME aí ele segue em frente sem problemas. Testei com o servidor do UOL e com o da Locaweb, sendo que o da UOL retorna 8 linhas de respostas e o da Locaweb 4. Testei o envio para contas do UOL, GMAIL e HOTMAIL. O único problema detectado foi que o servidor da Locaweb não conseguiu entegar ao HOTMAIL, nada mais. Obrigado
HELO e EHLO
Os servidores que utilizo não utilizam o HELO, mas ai vai...
// handshaking com o servidor fputs($conexao,"EHLO $servidor\r\n", 512); do{ $buffer = fgets($conexao, 512); echo "loop: ".$buffer."<br>"; }while (substr($buffer, 4, 8) != '8BITMIME');
complemento
... já está incluído no corpo do artigo!
Erro
Olá, quando executo o seu código à parte, ele funciona direitinho. Mas quando abro uma conexão com o mysql antes de executar o seu código, ele não manda o email...
Vc sabe pq isso acontece?
Gmail
Olá... algém conseguiu conectar com "smtp.gmail.com"
estou com o seguinte erro... o que está havendo de errado? qual servidor SMTP voces conectaram com sucesso?? [CODE] conectou com: Resource id #2 conexão: 220 mx.gmail.com ESMTP h36sm6654066wxd loop: 250-mx.gmail.com at your service loop: 250-SIZE 20971520 loop: 250-8BITMIME auth login: 250-STARTTLS login: 250 ENHANCEDSTATUSCODES senha: 530 5.7.0 Must issue a STARTTLS command first h36sm6654066wxd mail from: 502 5.5.1 Unrecognized command h36sm6654066wxd recpt to: 502 5.5.1 Unrecognized command h36sm6654066wxd data: 530 5.7.0 Must issue a STARTTLS command first h36sm6654066wxd email: 530 5.7.0 Must issue a STARTTLS command first h36sm6654066wxd quit: 530 5.7.0 Must issue a STARTTLS command first h36sm6654066wxd [/CODE]
Erro com anexo em pdf
Olá, estou com problemas nos anexos em pdf. Fiz algumas alterações neste script e resultou nas linhas abaixo.
fputs($conexao, "MIME-Version: 1.0\r\n"); fputs($conexao, "Content-Type: multipart/mixed;\r\n"); fputs($conexao, "Date: $data\r\n"); fputs($conexao, "From: $deNome <$de>\r\n"); fputs($conexao, "To: $paraNome <$para>\r\n"); fputs($conexao, "Subject: $assunto\r\n"); fputs($conexao, "\r\n"); fputs($conexao, "Content-Type: text/plain;charset=iso-8859-1\r\n Content-Transfer-Encoding: 7bit\r\n"); fputs($conexao, "$corpo\r\n"); fputs($conexao, "\r\n"); fputs($conexao, "Content-type:application/pdf; filename=$imagem_nome \r\n"); fputs($conexao, "Content-Transfer-Deconding: base64\r\n $encoded_attach \r\n"); fputs($conexao, ".\r\n"); Ele faz o envio dos dados e o tamanho da mensagem calcula normal, mas ao abrir a mensagem aparece os dados abaixo: t-Type: text/plain;charset=iso-8859-1 -------------------------------------------------------------------------------- tent-Transfer-Encoding: 7bit -------------------------------------------------------------------------------- agem com autenticação OK<br>bysica123 -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ent-type:application/pdf; filename=email654.pdf -------------------------------------------------------------------------------- ent-Transfer-Deconding: base64 -------------------------------------------------------------------------------- ERi0xLjQKJeTjz9IKMyAwIG9iago8PC9MZW5ndGggNCAwIFIKL0ZpbHRlci9GbGF0ZURlY29k -------------------------------------------------------------------------------- PgpzdHJlYW0KeJxzCuHSdzNQMDJRCEnjMlQwAEJDBVMDBXMDA4WQXC7XEC4Ac9AGnAplbmRz Alguém tem alguma dica para isto? Obrigado
Um detalhe...
Olá, você esqueceu de publicar para a galera como que envia vários emails ao mesmo tempo em uma única conexão...
Problemas!
Meu velho, estou tendo problemas com esse código, não funciona comigo, aparece isso pra mim!
conectou com: Resource id #1 conexão: 220 mail1.salvador.ba.gov.br ESMTP loop: 250-mail1.salvador.ba.gov.br loop: 250-PIPELINING loop: 250-SIZE 10000000 loop: 250-DATAZ loop: 250-STARTTLS loop: 250-AUTH LOGIN PLAIN loop: 250 8BITMIME Fatal error: Maximum execution time of 30 seconds exceeded in c:\inetpub Já mudei o tempo do timeout e nada. O que tá errado? Abraços! Anderson
Segurança
Aproveitando que você criou esse artigo super interessante você poderia também fazer alguns comentarios a respeito de segurança que envolve esse método, etc.
Até mais!
Espetacular
Carlos estou escrevendo para elogiar seu script e tb a sua iniciativa de compartilhar com os amigos do forum esse script senssacional !!!
Meus enormes parabéns
Carlos, ótimo artigo!
Meus parabéns mesmo, muito didático e funcional. Junto à observação do Flavio Vargas eis um script muito bom. Abraço, Líbene Fernandes
Problema
Bem pessoal...
o meu fica assim: conectou com: Resource id #1 conexão: loop: loop: loop: loop: loop: loop: loop: Loop infinitamente :S alguem poderia me ajudar? obrigado!
Máquina trava e a página é exibida
Máquina trava e a página é exibida
SOLUÇÃO: substituir da linha 41 à 44 por: //modificado ---------------- $i=0; do { $i++; $buffer=fgets($conexao, 512); print($i." - loop: ".$buffer."<br>"); if(substr($buffer , 4, 8)=='8BITMIME') break; } while ($buffer); // fim -------------- modificado Até mais!
Re: Máquina trava e a página >>NAO<< é exibida
ERRATA: O TÍTULO SERIA:
"Máquina trava e a página >>NÃO<< é exibida" Até mais! |
|
||||||||||||||||||||||||||
|
|
| João Prado Maia | ||