Re: "+ou-Resolvido" Help com email em script???
plebeo escreveu:
Só conlcuindo aí, testei com o php e funcionou tb.
On 27/02/2008, *Junior Polegato - Linux*
<linux@juniorpolegato.com.br <mailto:linux@juniorpolegato.com.br>>
wrote:
Você não pode fazer isso em PHP?
php -r '$remetente = "Junior <junior@umservidor.com.br
<mailto:junior@umservidor.com.br>>"; $destinatario
= "Clicano <clicano@outroservidor.com.br
<mailto:clicano@outroservidor.com.br>>"; $assunto = "Assunto da
mensagem"; $arquivo_html = "/caminho/arquivo/html";
$arquivo_aberto =
fopen($arquivo_html, "r"); $mensagem_html = fread($arquivo_aberto,
filesize($arquivo_html)); fclose($arquivo_aberto);
mail($destinatario,
$assunto, $mensagem_html, "From: ".$remetente."\nContent-Type:
text/html; charset=UTF-8");'
Olá,
Legal! Mas em se tratando de usar mailx, até onde eu sei, este
não suporta por padrão autenticação SMTP e nem esse from=, qual versão
está usando?
$ dpkg -l "*mailx*"|grep ii
ii bsd-mailx
8.1.2-0.20071201cvs-2 A simple mail user agent
ii mailx
1:20071201-2 Transitional package for mailx rename
Outra alternativa, para não depender de pacotes ou de PHP ou
outro que seja, é fazer a autenticação na unha, cujo algoritmo não é tão
complicado:
// Conectar
socket = conectar_por_socket(Servidor, Porta);
esperar_reposta(socket, "220");
// verificar se conectou e se espera por autenticação
enviar(socket, "EHLO ", Servidor);
espera_por_autenticação = esperar_reposta(socket, "250", verdadeiro);
// Autenticar se espera por autenticação
se (espera_por_autenticação)
enviar(socket, "AUTH LOGIN");
esperar_resposta(socket, "334");
enviar(socket, base64(Usuario));
esperar_resposta(socket, "334");
enviar(socket, base64(Senha));
esperar_resposta(socket, "235");
// Verificar se está passando sem autenticação
senão
enviar(socket, "HELO ", Servidor);
esperar_resposta(socket, "250");
// Dados requeridos para enviar e-mail: remetente, destinatário e dados
enviar(socket, "MAIL FROM: ", Remetente);
esperar_resposta(socket, "250");
enviar(socket, "RCPT TO: ", Destinatario);
esperar_resposta(socket, "250");
enviar(socket, "DATA");
esperar_resposta(socket, "354");
// Agora sim vem o e-mail, sendo o cabeçalho separado do corpo pela
primeira linha em branco
// Cabeçalho
enviar(socket, "From: ", Remetente);
enviar(socket, "To: ", Destinatario);
enviar(socket, "Subject: ", Assunto);
enviar(socket, "User-Agent: Envmail - Junior Polegato - v0.1");
enviar(socket, "MIME-Version: 1.0");
enviar(socket, "Content-Type: multipart/alternative;");
enviar(socket, "boundary=\"separador_de_partes_deste_e-mail\"");
enviar(socket, "");
enviar(socket, "This is a multi-part message in MIME format.");
enviar(socket, "--separador_de_partes_deste_e-mail");
enviar(socket, "Content-Type: text/plain; charset=UTF-8; format=flowed");
enviar(socket, "Content-Transfer-Encoding: 7bit")
// Aqui poderia enviar a parte texto
// enviar(socket, Corpo_Texto);
enviar(socket, "");
enviar(socket, "Este é um teste de envio em *HTML*!");
enviar(socket, "");
enviar(socket, "--separador_de_partes_deste_e-mail");
enviar(socket, "Content-Type: text/html; charset=UTF-8");
enviar(socket, "Content-Transfer-Encoding: 8bit");
enviar(socket, "");
// Aqui poderia enviar a parte texto
// enviar(socket, Corpo_HTML);
enviar(socket, "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01
Transitional//EN\">");
enviar(socket, "<html>");
enviar(socket, "<head>");
enviar(socket, "</head>");
enviar(socket, "<body>");
enviar(socket, "Este é um testes de envio em <b>HTML</b>!<br>");
enviar(socket, "</body>");
enviar(socket, "</html>");
enviar(socket, "");
enviar(socket, "--separador_de_partes_deste_e-mail--");
// Final do e-mail entendido pelo servidor
enviar(socket, "");
enviar(socket, ".");
esperar_resposta(socket, "250");
// Fecha a conexão
enviar(socket, "QUIT");
desconectar_por_socket(socket);
O arquivo texto pode ser gerado a partir do HTML assim:
sed 's/<[/]*b>/*/g;s/<[^>]*>//g;/^[ \t]*$/d' arquivo.html > arquivo.txt
O que acha? Vale a pena implementar?
--
Atenciosamente,
Junior Polegato
Um peregrino de problemas; Um pergaminho de soluções!
Página Profissional: http://www.juniorpolegato.com.br
Reply to: