Liberdade de conhecimento web
Publicado em Básico, Livre, Problemas, Segurança, Web por John-Henrique às 10:19 pm |
Tenho visto que muitos webmasters tem tido dificuldades para enviar algum informativo (newsletter) devido ao limite de envio de emails imposto por alguns hosts, normalmente o limite fica entre 100 e 400 emails por hora.
Este problema acaba gerando um grande desconforto, pois, imagine você que nosso site possua 1000 assinantes se você tivesse que enviar tudo isso manualmente (existe essa possibilidade?) iria demorar várias horas se não dias.
Os hosts que possuem este limite fazem isso justamente para evitar envio de emails em massa comumente conhecido como SPAM, que nada mais é do que envio de email não solicitado. Apesar do limite imposto alguns usuários talvez até sem saber acabam enviando emails acima do limite, então os emails que ultrapassam o limite são barrados, algumas empresas devolvem o email ao remetente outras apenas cancelam o envio e notificam o remetente. Algumas vezes os administradores do host chegam a decisões extremas como cancelamento da conta de hospedagem quando o envio é continuo.
Pois bem, pensando numa solução para o problema criei um pequeno e simples script em PHP/MySQL que se encarrega de enviar os emails dentro do limite imposto pelo host (ou servidor).
Antes de tudo gostaria de destacar que este material foi criado com intuito de resolver o problema, sendo assim estou me baseando na idéia de que você tenha no mínimo conhecimentos básicos em PHP e MySQL.
Primeiramente crie esta tabela em seu banco MySQL para que você possa utilizar o script.
CREATE TABLE newsletter (
id INT(4) NOT NULL AUTO_INCREMENT,
nome VARCHAR(60) NOT NULL,
email VARCHAR(120) NOT NULL,
codStatus INT(1) NOT NULL DEFAULT 0,
PRIMARY KEY(id)
);
Esta tabela possui quatro campos (id, nome, email e codStatus) estes campos são responsáveis pelo armazenamento e organização dos dados contidos na tabela, a organização consiste em:
Bom, eu criei a estrutura da tabela, mas, não irei disponibilizar os registros para que a tabela seja populada, sendo assim, você terá que criar ai seus próprios registros.
Tendo nossa tabela criada vamos então (finalmente) ver o tal script.
// DADOS DE ACESSO AO BANCO MYSQL
$host = "HOST";
$banco = "BANCO";
$usuario = "USUARIO";
$senha = "SENHA";
Adicionamos aqui os dados necessários para a conexão com nosso servidor MySQL não há nada extraordinário aqui, se você não sabe quais são estes dados entre em contato com seu servidor de hospedagem para solicita-los.
// NOME DA TABELA
$tabela = "newsletter";
// CAMPOS UTILIZADOS PARA A CONSULTA
$campos = "id, nome, email";
// NUMERO MÁXIMO DE ENVIO
$quant = 10;
// TEMPO ENTRE UM PROCESSO DE ENVIO E OUTRO
$seg = 36;
Na segunda linha informamos o nome da tabela onde se encontram os emails de nossos assinantes, eu criei a variável “$tabela” somente para facilitar as coisas pra quem está utilizando uma tabela com nome diferente.
Na quarta linha informamos os campos que vão ser utilizados no processo do envio. O campo id precisa ser informado pois é através dele que vamos informar qual email acaba de ser enviado.
O campo nome e email (nem precisa falar) são obrigatórios pois vão informar ao script o nome e email do destinatário.
Na sexta linha informamos a quantidade de emails que deve ser enviado por vez. Note que eu adicionei o valor “10″ você pode alterar este valor se quiser.
Na oitava linha informamos o tempo (em segundos) que deve ser aguardado entre um processo de envio e outro.
// DADOS DO EMAIL A SER ENVIADO
$assunto = "Envio de newslleter";
$msg = "Meu primeiro email enviado por pacotes em PHP/MySQL";
$nome_remetente = "Nome Remetente";
$email_remetente = "Email Remetente";
Na segunda linha informamos o título do email a ser enviado, este título corresponde ao assunto do email.
Na terceira linha informamos a mensagem do email, ou seja, a informação que deve ser enviada ao destinatário.
Na quarta e quinta linha informamos o nome e email do remetente (pessoa que envia), este ponto é importante, sempre que possível adicione um email verdadeiro pois é através dele que seu usuário poderá respondê-lo e também por que alguns servidores não permitem o envio de emails via PHP a menos que o campo “remetente” seja um email verdadeiro e principalmente existente no servidor, sendo assim, se seu site chama-se “site.com” seu email deve ser “algumacoisa@site.com”.
// ADICIONA AO CABEÇALHO DO EMAIL AS INFORMAÇÕES DO REMETENTE (QUEM ENVIA)
$cabecalho = "From: ". $nome_remetente ." <". $email_remetente .">";
// ADICIONA O CABEÇALHO PARA ENVIAR FORMATAÇÃO HTML
$cabecalho .= “MIME-Version: 1.0\r\n”;
$cabecalho .= “Content-type: text/html; charset=iso-8859-1\r\n”;
// CONECTA COM O SERVIDOR MYSQL
mysql_connect($host,$usuario,$senha);
// SELECIONA O BANCO
mysql_select_db($banco);
// RESGATA O VALOR DA GLOBAL INICIO
$inicio = $_GET["inicio"];
// ATRIBUI O RESULTADO DA SOMA ENTRE INICIO E QUANT
$fim = $inicio + $quant;
Nestas linhas fazemos (nesta ordem):
// VERIFICA SE FOI ATRIBUIDO VALOR A VARIAVEL "INICIO"
if($inicio == ""){
// ATRIBUI O VALOR 0 CASO NÃO EXISTA VALOR ATRIBUIDO
$inicio = 0;
}else{
// ATRIBUI O VALOR DA GLOBAL INICIO CASO JA EXISTA VALOR ATRIBUIDO
$inicio = $_GET["inicio"];
}
// EXECUTA A CONSULTA OU INFORMA UM ERRO CASO OCORRA
$sql = mysql_query("SELECT ". $campos ." FROM ". $tabela ." WHERE codStatus = 0 LIMIT ". $inicio .",". $quant)or die(mysql_error());
// VERIFICA SE AINDA EXISTEM EMAILS A SEREM ENVIADOS
if(mysql_num_rows($sql) == 0){
// ALTERANDO O VALOR DO CAMPO CODSTATUS PARA 0
@mysql_query(”UPDATE “. $tabela .” SET codStatus = 0″);
// INFORMO O TÉRMINO DO PROCESSO
echo “Fim do processo de envio!”;
}else{
// CONTINUA EFETUANDO O ENVIO
echo “<meta http-equiv=\”refresh\” content=\”" . $seg . “,URL=?inicio=”. $fim .”\”>”;
}
Esta é uma parte importante no sistema.
// CRIA O LAÇO REPETITIVO
while($r = mysql_fetch_array($sql)){
// ADICIONAMOS OS PADRÕES DE DESTINATÁRIO
$para = $r["nome"] .”<”. $r["email"] .”>”;
// ENVIA O EMAIL PARA O DESTINATÁRIO
if(mail($para, $assunto, $msg, $cabecalho)){
// INFORMA SE A MENSAGEM FOI ENVIADA
echo “Mensagem enviada para:
\r”. $para;
// ALTERO O CODSTATUS PARA 1
@mysql_query(”UPDATE”. $tabela .” SET codStatus = 1 WHERE id = “. $id);
}else{
// INFORMO SE A MENSAGEM NÃO FOI ENVIADA
echo “Mensagem não enviada para:
\r”. $para;
}
}
// LIBERA MEMORIA USADA NA CONSULTA
mysql_free_result($sql);
// FECHA A CONEXÃO COM O BANCO
mysql_close($conexao);
Bom, espero que isso seja útil para você (Demorei muito tempo digitando isso aqui e explicando tudo
).
Para aqueles que queiram saber mais sobre as funções utilizadas aqui disponibilizo aqui os links para tais.
mysql_connect()
mysql_close()
mysql_select_db()
mysql_fetch_array()
mysql_free_result()
mysql_query()
mysql_num_rows()
while()
mail()
E por fim disponibilizo aqui o script completo para quem quiser testa-lo ou utiliza-lo.
<?PHP
############################
# O CONTEÚDO DESTE NÃO FOI
# CRIADO COM O INTUITO DE
# DISTRIBUIR SPAM, OBRIGADO.
############################
// DADOS DE ACESSO AO BANCO MYSQL
$host = “HOST”;
$banco = “BANCO”;
$usuario = “USUARIO”;
$senha = “SENHA”;
// NOME DA TABELA
$tabela = “newsletter”;
// CAMPOS UTILIZADOS PARA A CONSULTA
$campos = “id, nome, email”;
// NUMERO MÁXIMO DE ENVIO
$quant = 10;
// TEMPO ENTRE UM PROCESSO DE ENVIO E OUTRO
$seg = 36;
// DADOS DO EMAIL A SER ENVIADO
$assunto = “Envio de newslleter”;
$msg = “Meu primeiro email enviado por pacotes em PHP/MySQL”;
$nome_remetente = “Nome Remetente”;
$email_remetente = “Email Remetente”;
// ADICIONA AO CABEÇALHO DO EMAIL AS INFORMAÇÕES DO REMETENTE (QUEM ENVIA)
$cabecalho = “From: “. $nome_remetente .” <”. $email_remetente .”>”;
// ADICIONA O CABEÇALHO PARA ENVIAR FORMATAÇÃO HTML
$cabecalho .= “MIME-Version: 1.0\r\n”;
$cabecalho .= “Content-type: text/html; charset=iso-8859-1\r\n”;
// CONECTA COM O SERVIDOR MYSQL
mysql_connect($host,$usuario,$senha);
// SELECIONA O BANCO
mysql_select_db($banco);
// RESGATA O VALOR DA GLOBAL INICIO
$inicio = $_GET["inicio"];
// VERIFICA SE FOI ATRIBUIDO VALOR A VARIAVEL “INICIO”
if($inicio == “”){
// ATRIBUI O VALOR 0 CASO NÃO EXISTA VALOR ATRIBUIDO
$inicio = 0;
}else{
// ATRIBUI O VALOR DA GLOBAL INICIO CASO JA EXISTA VALOR ATRIBUIDO
$inicio = $_GET["inicio"];
}
// ATRIBUI O RESULTADO DA SOMA ENTRE INICIO E QUANT
$fim = $inicio + $quant;
// EXECUTA A CONSULTA OU INFORMA UM ERRO CASO OCORRA
$sql = mysql_query(”SELECT “. $campos .” FROM “. $tabela .” WHERE codStatus = 0 LIMIT “. $inicio .”,”. $quant)or die(mysql_error());
// VERIFICA SE AINDA EXISTEM EMAILS A SEREM ENVIADOS
if(mysql_num_rows($sql) == 0){
// ALTERANDO O VALOR DO CAMPO CODSTATUS PARA 0
@mysql_query(”UPDATE “. $tabela .” SET codStatus = 0″);
// INFORMO O TÉRMINO DO PROCESSO
echo “Fim do processo de envio!”;
}else{
// CONTINUA EFETUANDO O ENVIO
echo “<meta http-equiv=\”refresh\” content=\”" . $seg . “,URL=?inicio=”. $fim .”\”>”;
}
// CRIA O LAÇO REPETITIVO
while($r = mysql_fetch_array($sql)){
// ADICIONAMOS OS PADRÕES DE DESTINATÁRIO
$para = $r["nome"] .”<”. $r["email"] .”>”;
// ENVIA O EMAIL PARA O DESTINATÁRIO
if(mail($para, $assunto, $msg, $cabecalho)){
// INFORMA SE A MENSAGEM FOI ENVIADA
echo “Mensagem enviada para:
\r”. $para;
// ALTERO O CODSTATUS PARA 1
@mysql_query(”UPDATE”. $tabela .” SET codStatus = 1 WHERE id = “. $id);
}else{
// INFORMO SE A MENSAGEM NÃO FOI ENVIADA
echo “Mensagem não enviada para:
\r”. $para;
}
}
// LIBERA MEMORIA USADA NA CONSULTA
mysql_free_result($sql);
// FECHA A CONEXÃO COM O BANCO
mysql_close($conexao);
?>
O autor se reserva ao direito de não permitir a reprodução deste conteúdo.
Opa eaí meu blz? Baaah dá uma olhadinha no script pronto e compara com o do tuto, tá faltando a variável $para dentro do while, tá dando mysql_free_result na $query sendo que a query tá na $sql.. tem uns detalhezinhos a corrigir mas que está me ajudando muito!
Agora fica uma questão, queria saber como fazer pra trabalhar com duas tabelas ao mesmo tempo, tipo uma de fornecedores e outra de currículos de um site (tipo ambos receberem a newsletter, mas precisam estar separados por tabelas pois não tem o mesmo tipo de dados), fazendo duas querys ficaria facim né, mas e com uma só? Já tentei INNER JOIN e um monte de coisa mas nada funcionou…
Muito boa iniciativa e belo blog!
Congratulations and Good Luck! ;D
Realmente eu publiquei o exemplo da explicação diferente do script completo é que eu havia feito para um sistema e por questões de segurança eu modifiquei e acabei esquecendo de alterar os dois. Obrigado por notificar-me.
Fernando dá pra fazer sim baseando-se em dados de duas ou mais tabelas, mas, pra que eu possa te mostrar como seria eu preciso saber como é a estrutura de suas tabelas.
Falopa!
– phpMyAdmin SQL Dump
– version 2.6.4-pl2
– http://www.phpmyadmin.net
–
– Servidor: localhost
– Tempo de Geração: Abr 03, 2007 as 09:38 PM
– Versão do Servidor: 4.0.27
– Versão do PHP: 4.3.11
–
– Banco de Dados: `recividr_db`
–
– ——————————————————–
–
– Estrutura da tabela `curriculuns`
–
CREATE TABLE `curriculuns` (
`id` int(15) NOT NULL auto_increment,
`nome` varchar(100) NOT NULL default ”,
`dnasc` int(2) NOT NULL default ‘0′,
`mnasc` int(2) NOT NULL default ‘0′,
`anasc` int(4) NOT NULL default ‘0′,
`cpf` varchar(30) NOT NULL default ”,
`naturalidade` varchar(20) NOT NULL default ”,
`nacionalidade` varchar(20) NOT NULL default ”,
`rua` varchar(100) NOT NULL default ”,
`numero` varchar(20) NOT NULL default ”,
`complemento` varchar(30) NOT NULL default ”,
`cidade` varchar(80) NOT NULL default ”,
`bairro` varchar(20) NOT NULL default ”,
`foneddd` varchar(5) NOT NULL default ”,
`fone` varchar(20) NOT NULL default ”,
`celddd` varchar(5) NOT NULL default ”,
`cel` varchar(10) NOT NULL default ”,
`email` varchar(255) NOT NULL default ”,
`interesse` varchar(50) NOT NULL default ”,
`conheceu` varchar(50) NOT NULL default ”,
`formacao` int(2) NOT NULL default ‘0′,
`curso` varchar(255) NOT NULL default ”,
`cursos_extra` varchar(255) NOT NULL default ”,
`empresa1` varchar(255) NOT NULL default ”,
`cargo1` varchar(255) NOT NULL default ”,
`entrada1` varchar(255) NOT NULL default ”,
`salario1` varchar(255) NOT NULL default ”,
`saida1` varchar(255) NOT NULL default ”,
`empresa2` varchar(255) NOT NULL default ”,
`cargo2` varchar(255) NOT NULL default ”,
`entrada2` varchar(255) NOT NULL default ”,
`salario2` varchar(255) NOT NULL default ”,
`saida2` varchar(255) NOT NULL default ”,
`resumo` longtext NOT NULL,
`desejo` longtext NOT NULL,
`id_grupo` int(15) NOT NULL default ‘0′,
`codStatus` int(1) NOT NULL default ‘0′,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;
–
– Extraindo dados da tabela `curriculuns`
–
INSERT INTO `curriculuns` (`id`, `nome`, `dnasc`, `mnasc`, `anasc`, `cpf`, `naturalidade`, `nacionalidade`, `rua`, `numero`, `complemento`, `cidade`, `bairro`, `foneddd`, `fone`, `celddd`, `cel`, `email`, `interesse`, `conheceu`, `formacao`, `curso`, `cursos_extra`, `empresa1`, `cargo1`, `entrada1`, `salario1`, `saida1`, `empresa2`, `cargo2`, `entrada2`, `salario2`, `saida2`, `resumo`, `desejo`, `id_grupo`, `codStatus`) VALUES (2, ‘Currículo Fictício’, 1, 1, 1920, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, 1, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, 3, 0);
INSERT INTO `curriculuns` (`id`, `nome`, `dnasc`, `mnasc`, `anasc`, `cpf`, `naturalidade`, `nacionalidade`, `rua`, `numero`, `complemento`, `cidade`, `bairro`, `foneddd`, `fone`, `celddd`, `cel`, `email`, `interesse`, `conheceu`, `formacao`, `curso`, `cursos_extra`, `empresa1`, `cargo1`, `entrada1`, `salario1`, `saida1`, `empresa2`, `cargo2`, `entrada2`, `salario2`, `saida2`, `resumo`, `desejo`, `id_grupo`, `codStatus`) VALUES (3, ‘Santo cristo..’, 1, 1, 1920, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ‘flashnando@gmail.com’, ”, ”, 4, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, 5, 0);
– ——————————————————–
–
– Estrutura da tabela `fornecedores`
–
CREATE TABLE `fornecedores` (
`id` int(15) NOT NULL auto_increment,
`pessoa` int(2) NOT NULL default ‘0′,
`nome` varchar(80) NOT NULL default ”,
`cpf_cnpj` varchar(11) NOT NULL default ”,
`inscricao_estadual` varchar(20) NOT NULL default ”,
`razao_social` varchar(20) NOT NULL default ”,
`rua` varchar(20) NOT NULL default ”,
`numero` varchar(10) NOT NULL default ”,
`complemento` varchar(10) NOT NULL default ”,
`cidade` varchar(20) NOT NULL default ”,
`bairro` varchar(20) NOT NULL default ”,
`foneddd` varchar(4) NOT NULL default ”,
`fone` varchar(11) NOT NULL default ”,
`estado` char(2) NOT NULL default ”,
`site` varchar(255) NOT NULL default ”,
`email` varchar(80) NOT NULL default ”,
`tipo_vidro` char(2) NOT NULL default ”,
`subtipo_vidro` varchar(30) NOT NULL default ”,
`quantidade` varchar(40) NOT NULL default ”,
`mensagem` longtext NOT NULL,
`id_grupo` int(15) NOT NULL default ‘0′,
`codStatus` int(1) NOT NULL default ‘0′,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
–
– Extraindo dados da tabela `fornecedores`
–
INSERT INTO `fornecedores` (`id`, `pessoa`, `nome`, `cpf_cnpj`, `inscricao_estadual`, `razao_social`, `rua`, `numero`, `complemento`, `cidade`, `bairro`, `foneddd`, `fone`, `estado`, `site`, `email`, `tipo_vidro`, `subtipo_vidro`, `quantidade`, `mensagem`, `id_grupo`, `codStatus`) VALUES (4, 1, ‘Fornecedor Fictício’, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ‘flashnando@gmail.com’, ‘0′, ‘0′, ”, ”, 3, 0);
Bem se ficar muito comprido pode editar ou excluir esse meu comentário pois a minha história está todinha aki: http://forum.wmonline.com.br/index.php?showtopic=175093
Parse error: syntax error, unexpected T_STRING in /home/.outsider/user001/dentrodabalada.com.br/email.php on line 65
ta dando esse erro =/
Marcos, por mais estranho que seja o problema estava sendo causado por uma aspas ao contrário (o fecha aspas) então o interpretador do PHP informava o erro.
Você deve estar achando que eu estou arrumando uma desculpa, não é? é que eu digitei tudo no word ai ele formata abre e fecha aspas.
Já está corrigido.
e onde é usado a variavel headers? naum teria q ser concatenada junto com a cabeçalho?
e a variavel $para dentro do while, ela não deveria ficar do lado de fora do if, já que ela tem q estar definida para poder enviar o email pela função mail?
e se ela for para o lado de fora, ela continua sendo concatenada com o nome? ou ficaria somente a $para = $r_['email];???
Obrigado!
BRUNO THOMASI
Realmente estava errado, foi o mesmo caso desta resposta aqui http://www.vibemidia.com/blog/solucao-para-envio-de-emails-em-grande-quantidade/?preview=true#comment-43
Falopa!
Tá como $cabecalho = “MIME-Version: 1.0\r\n”;
tem q ser $cabecalho .= “MIME-Version: 1.0\r\n”;
e ali no for q eu te perguntei a parte do $para q ta dentro do if(mail teria q estar fora
tem cmo arrumar?
valeww!
fuiz
Ah e outra coisa q eu constatei:
$inicio = $_GET["inicio"];
#####————————————————————————————————->>>>>>>>>>>>>>>>>>>>>>>>>
// VERIFICA SE FOI ATRIBUIDO VALOR A VARIAVEL “INICIO”
if($inicio == “”){
// ATRIBUI O VALOR 0 CASO NÃO EXISTA VALOR ATRIBUIDO
$inicio = 0;
}else{
// ATRIBUI O VALOR DA GLOBAL INICIO CASO JA EXISTA VALOR ATRIBUIDO
$inicio = $_GET["inicio"];
}
#####————————————————————————————————->>>>>>>>>>>>>>>>>>>>>>>>>
// ATRIBUI O RESULTADO DA SOMA ENTRE INICIO E QUANT
$fim = $inicio + $quant;
a parte q faz a soma para gerar o fim deve ser depois dele pegar o dado inicio e não antes como se encontra
desculpa ser chato mas eh a real eauheahaeu
valeww
fuiz
Realmente estava errado, já foi corrigido. O extranho é que eu havia testado isso aqui em minha máquina e depois publiquei, e como você pode ver através dos comentários apareceram diversos erros provavelmente na hora de editar no Word e colar no WordPress. No mais está corrido.
OBS.: Chato seria se você tivesse dito que estava funcionando normalmente. (Sempre há algo a corrigir ou melhorar)
Obrigado por informar-me
Falopa!
Olá,
Tenho um codigo de formulario que envia o e-mails cadastrados para mim.
Gostaria de saber se é possivel inserir no codigo mais de 1 e-mail para onde o formulario será enviado, sem que o destinatario do e-mail saiba que o msm e-mail foi enviado para mim tb. como se fosse, um e-mail com Cco:.
Obrigado
@ RUI
Supondo que seu código envie emails utilizando a função mail() (como o código deste artigo) você pode adicionar vários emails separados por virgula.
Bom, lembrar que no manual da função mail() não está especificando um número limite de emails, mesmo assim, seria interessante não usar mais de 15.
A forma correta para adiciona-los seria a seguinte (seguindo o exemplo deste artigo)…
$para = “nome
Falopa!
Para o caso de alguém querer saber como enviar o email sem que os destinatários vejam os emails para os quais o email foi enviado.
O exemplo anterior permite que o destinatário 1 veja o email do destinatário 2 e assim por diante…
Existem também os parâmetros CC (cópia carbono) e CCO (cópia carbono oculta) esta última impede que o destinatário saiba que a mensagem foi enviada para outras pessoas.
Para usa-los basta adicionar váriavel cabeçalho…
Exemplo CC:
$cabecalho .= “CC: nome1
Exemplo CCO:
$cabecalho .= “CCO: nome1
Falopa!
@ RUI
No código que você me enviou via email, você pode adicionar os parâmetros que citei acima logo após “From:$nome< $email>“.
mail (”$emaildest”,”$assunto”,”nome: $nome\n e-mail: $email\n mensagem: $mensagem\n IP:$REMOTE_ADDR\n\n …::: sua mensagem :::…”,”From:$nome< $email> \nCC: nome1
Falopa!
Tudo bem? Entaum… coloquei os scripts, montei a página, só que não manda a mensagem, aparece a mensagem de erro:
Mensagem não enviada!!!
O que pode estar acontecendo???
@ ÁLISSON
Inicialmente eu diria que o seu servidor não permite o envio de emails via PHP, mas, se fosse isso, seria emitido uma mensagem de erro…
Então verifique isso.
1. Os emails estão todos sem espaços no inicio e no final?
2. Os emails possuem o formato completo, Ex.: login@servidor.com
3. Os campos da sua tabela no banco de dados possuem os mesmos nomes que a tabela citada por mim no inicio do artigo?
Aguardo sua resposta.
Falopa!
Bom dia, John.
Sou novo em PHP e nao entendo muitas coisas asim. Quando testei o script, deu um erro na linha 68.
Me parece ser o mesmo erro comentado pelo amigo Fernando logo no primeiro comment, mas nao consegui entender bem o que tem que corrigir.
Poderia ser mais claro ou colocar o script novamente sem o erro pra gente?
Olá a todos! Sou usuário domestico de computador.
Eu criei um layout e um newsletter na base de um html (Template).
Tenho alguns programas mas não tenho obtido exito.
Gostaria de saber sem tem alguem enteressado em me ajudar posso remunerar.
Agradeço desde já a todos(as)!
@ VALDIR
Bom, em primeiro lugar…
Este tal WorldCast é um programa instalavel? (Você precisa instala-lo no seu computador para enviar os emails)
Se for, para fazer o envio de uma newsletter com imagens ou arquivos anexos você precisará primeiramente hospedar estes arquivos na internet e adicionar na newsletter o endereço completo para o local onde encontram-se hospedados os arquivos.
Se este WorldCast for um programa pago.
Você provavelmente está com a versão demo instalada, e neste caso talves esta versão não permita o envio completo de uma newsletter, se permitisse pra que alguém iria comprar o programa?
Falopa!
@ BRITO
Bom, você havia dito que sua esposa já possui um site, se ele for um site hospedado em servidor pago e possuir PHP habilitado, você pode utilizar um script em PHP para fazer uma newsletter, este artigo mostra como fazer o envio de uma…
Outra alternativa seria você utilizar algum software como o OutLook ou algo similar para enviar emails, só não seria feito automaticamente…
Falopa!
Qual a mensagem de erro que aparece?
É exatamente este código que você está usando?
Se você estiver tentando executar este código em seu computador local irá precisar instalar um servidor de emails, do contrário nunca funcionará.
Falopa!
John
Não está enviando, estou usando servidor remoto e mesmo assim nada.
não possuo nenhum site, mas, o que eu quero é:
um programa para enviar e-mails ppara muitos destinatarios ao mesmo tempo e os programas que adquiri paparece não funcionar.
e sempre que procuro na internet, não encontro nenhum programa que me satisfaça. e não há ninguem queexplica como mandar diversos e-mails a diversas pessoassó falam em enviar diversos e-mails para uma pessoa só.
que diaboos! quero como já disse, quero mandar varios e-mails para varias pessoas.
será que fui claro?
espero uma resposta e muito obrigado.
Bom dia, coloquei seu script para o envio das minhas newsletters. Arrumei as aspas, preenchi com os dados do meu Bd e fiz as consultas.
Porem quando eu clico em enviar, ele sempre da a mensagem qua as mensagens não puderam ser enviadas para o email tal.
e o loop está sendo feito corretamente, pois ele mostra corretamente os esmails que eu escolhi na consulta.
obrigado
@ TODOS
Vou realizar a correção hoje e publico amanhã pela manhã, não faço idéia de como este problema foi ocorrer.
Já tem um tempo que não publico nada sobre programação, mas, já tenho um artigo sobre consultas no MySQL que estou finalizando. Para quem quer se aprofundar mais no assunto é uma boa.
Assinem o FEED pra receber as atualizações feed://http//www.vibemidia.com/feed
Falopa!