asanoli 0 Denunciar post Postado Fevereiro 26, 2007 Olá Pessoal! Tenho aqui o phpmailer e não consegui sair do zero quanto a instalação/utilização. Dei uma olhada no tutorial do site, mas não consegui ir adiante. Preciso dele pra um newsletter. Será que alguém aí pode ajudar indicando um lugar pra eu pesquisar ou passando um tutorial??? Abs, Compartilhar este post Link para o post Compartilhar em outros sites
Dark Neo 0 Denunciar post Postado Fevereiro 27, 2007 qual seia a sua duvida com ele amigo..abraço!! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 27, 2007 Este é simples, claro e direto: http://www.vivaolinux.com.br/dicas/verDica.php?codigo=2476 * Esse exemplo usa SMTP. []'s Compartilhar este post Link para o post Compartilhar em outros sites
asanoli 0 Denunciar post Postado Fevereiro 27, 2007 Beraldo / Dark NeoJá tinha dado uma olhada neste exemplo e não consegui captar a "mensagem"!!! Eu preciso implementar uma ferramenta de envio de newsletter em um site. Já criei a rotina que monta o html. Então o adm do site apenas cola o texto e "gera" a página. Daí pensei em pegar o código-fonte e colar num formulário. Este formulário executaria o script de envio do newsletter para os e-mails de uma tabela. A minha dúvida é: como interagir com o phpmailer para que haja autenticação do SMTP? Desde já, agradeço.Abs, Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 27, 2007 A minha dúvida é: como interagir com o phpmailer para que haja autenticação do SMTP?O exemplo mostrado no link que passei usa autenticazção SMTP. O próprio PHPMailer faz essa autenticação, basta definir as variáveis adequadas: PHPMailer->SMTPAuth = true; PHPMailer->Host PHPMailer->Username PHPMailer->Password []'s Compartilhar este post Link para o post Compartilhar em outros sites
asanoli 0 Denunciar post Postado Fevereiro 27, 2007 Beraldo, Consegui rodar. Os e-mails estão sendo enviados, porém, ainda aparece um warning: Warning: Missing argument 1 for smtpsend() in /home/r14427/public_html/class.phpmailer.php on line 459 Warning: Missing argument 2 for smtpsend() in /home/r14427/public_html/class.phpmailer.php on line 459 A linha 459: 459 function SmtpSend($header, $body) { 460 include_once($this->PluginDir . "class.smtp.php"); 461 $error = ""; 462 $bad_rcpt = array(); O código ficou assim: $Email->SmtpSend(); $Email->Host = "smtp.site.com.br"; // Seu servidor smtp $Email->SMTPAuth = true; // smtp autenticado $Email->Username = "contato"; // usuário deste servidor smtp $Email->Password = "senha"; // senha Sabe dizer o que pode estar havendo??? Abs, Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 27, 2007 Poste seu código integralmente. Creio que você se esqueceu de definir alguma variável. []'s Compartilhar este post Link para o post Compartilhar em outros sites
asanoli 0 Denunciar post Postado Fevereiro 28, 2007 Poste seu código integralmente. Creio que você se esqueceu de definir alguma variável.[]'sResolvi comentando a linha $Email->SmtpSend();Obrigado pela ajuda amigo! Abs Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 28, 2007 Essa não é a melhor solução. Se você precisar enviar e-mails com SMTP, será gerado outro erro do PHPMailer. Se quiser, poste seu código para vermos onde está o erro. []'s Compartilhar este post Link para o post Compartilhar em outros sites
asanoli 0 Denunciar post Postado Fevereiro 28, 2007 Jóia! Aí vai o código então... // chamada da classe phpmailerrequire_once('class.phpmailer.php');// resgatando os dados passados pelo form$nomeusuario = "Rodrido Moraes Adv e Consultoria";$emailusuario = "contato@rodrigomoraes.adv.br";$assunto = "Newsletter - Rodrigo Moraes Adv e Consultoria";$mensagem = stripslashes($_POST['codigo']);$sql="select distinct email_men from mensagens where status_men='1'";$res=mysql_query($sql) or die (mysql_error());while ($e=mysql_fetch_array($res)) {$email=$e['email_men'];// faço a chamada da classe$Email = new PHPMailer();// na classe, há a opção de idioma, setei como br$Email->SetLanguage("br");// esta chamada diz que o envio será feito através da função mail do php. Você mudar para sendmail, qmail, etc // se quiser utilizar o programa de email do seu unix/linux para enviar o email// $Email->SmtpSend();$Email->Host = "smtp.rodrigomoraes.adv.br"; // Seu servidor smtp$Email->SMTPAuth = true; // smtp autenticado$Email->Username = "contato"; // usuário deste servidor smtp$Email->Password = "senha"; // senha// ativa o envio de e-mails em HTML, se false, desativa.$Email->IsHTML(true); // email do remetente da mensagem$Email->From = $emailusuario;// nome do remetente do email$Email->FromName = $nomeusuario;// Endereço de destino do emaail, ou seja, pra onde você quer que a mensagem do formulário vá?$Email->AddAddress($email);// informando no email, o assunto da mensagem$Email->Subject = $assunto;// Define o texto da mensagem (aceita HTML)$Email->Body .= $mensagem; Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 28, 2007 Mas o código está incompleto... Faltam as partes em que você define o tipo de envio (IsSMTP(), IsSendmail(), etc) e a parte que faz o envio (Send()). []'s Compartilhar este post Link para o post Compartilhar em outros sites
asanoli 0 Denunciar post Postado Março 1, 2007 Mas o código está incompleto... Faltam as partes em que você define o tipo de envio (IsSMTP(), IsSendmail(), etc) e a parte que faz o envio (Send()). []'s Xi! Só tenho isso... Este é o código que pega os e-mails da tabela e faz o loop. Os demais arquivos são o class.phpmailer.php e o class.smtp.php. Não mudei nada neles. function IsHTML($bool) { if($bool == true) $this->ContentType = "text/html"; else $this->ContentType = "text/plain"; } /** * Sets Mailer to send message using SMTP. * @return void */ function IsSMTP() { $this->Mailer = "smtp"; } /** * Sets Mailer to send message using PHP mail() function. * @return void */ function IsMail() { $this->Mailer = "mail"; } /** * Sets Mailer to send message using the $Sendmail program. * @return void */ function IsSendmail() { $this->Mailer = "sendmail"; } /** * Sets Mailer to send message using the qmail MTA. * @return void */ function IsQmail() { $this->Sendmail = "/var/qmail/bin/sendmail"; $this->Mailer = "sendmail"; } function Send() { $header = ""; $body = ""; $result = true; if((count($this->to) + count($this->cc) + count($this->bcc)) < 1) { $this->SetError($this->Lang("provide_address")); return false; } // Set whether the message is multipart/alternative if(!empty($this->AltBody)) $this->ContentType = "multipart/alternative"; $this->error_count = 0; // reset errors $this->SetMessageType(); $header .= $this->CreateHeader(); $body = $this->CreateBody(); if($body == "") { return false; } // Choose the mailer switch($this->Mailer) { case "sendmail": $result = $this->SendmailSend($header, $body); break; case "mail": $result = $this->MailSend($header, $body); break; case "smtp": $result = $this->SmtpSend($header, $body); break; default: $this->SetError($this->Mailer . $this->Lang("mailer_not_supported")); $result = false; break; } return $result; } Compartilhar este post Link para o post Compartilhar em outros sites
melos 0 Denunciar post Postado Março 8, 2007 eu preciso mudar algo no class.phpmailer.php?esta dando sempre a mensagem "There was an error sending the message" pq sera? Compartilhar este post Link para o post Compartilhar em outros sites