Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

asanoli

Phpmailer - newsletter

Recommended Posts

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

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

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

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

Poste seu código integralmente. Creio que você se esqueceu de definir alguma variável.[]'s

Resolvi comentando a linha $Email->SmtpSend();Obrigado pela ajuda amigo! Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.