Ir para conteúdo

POWERED BY:

Arquivado

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

ScornInPC

SendMail

Recommended Posts

Classe para envio de email que aceita SMTP autenticado, não necessita de servidor SMTP local, funciona em qualquer plataforma, sem limites de anexo.

 

para enviar email HTML colocasse como um arquivo anexado

 

smtpmail.class.php

<?php	/**	 * 	 * Redistribution and use in source and binary forms, with or without	 * modification, are permitted provided that the following conditions are met:	 *	 *	 * Redistributions of source code must retain the above copyright	 *	   notice, this list of conditions and the following disclaimer.	 *	 * Redistributions in binary form must reproduce the above copyright	 *	   notice, this list of conditions and the following disclaimer in the	 *	   documentation and/or other materials provided with the distribution.	 *	 * Neither the name of the University of California, Berkeley nor the	 *	   names of its contributors may be used to endorse or promote products	 *	   derived from this software without specific prior written permission.	 *	 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND ANY	 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED	 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE	 * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY	 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES	 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;	 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND	 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT	 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS	 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.	 * 	 * 	 * Classe de manipulação do protocolo SMTP	 * @author Bruno Pitteli Gonçalves <scorninpc<at>gmail<dot>com>	 * @version 0.2	 * @license BSD license	 *	 * 0.1	 *		Classe inicial	 *	 * 0.2	 *		Possibilidade de envio de email HTML	 *	 * 0.3	 *		Suporte a varios TOs separados por;	 *	 * 0.4	 *		Suporte à mudança da codificação	 *	 */	// Seta o tempo limite para 60 segundos	set_time_limit(120);		/**	 * SMTPMAIL	 * Escrito por Bruno Pitteli Gonçalves <scorninpc()gmail*com>	 * Classe que trata o protocolo SMTP	 */	class SMTPMAIL {		/**		 *	Variavel que armazena o endereço do servidor de email		 *	@access public		 */		public $Servidor;				/**		 *	Variavel que armazena a porta do servidor de email		 *	@access public		 */		public $Porta = 25;				/**		 *	Variavel que armazena a codificação		 *	@access public		 */		public $Codificacao = 'ISO-8859-1';				/**		 *	Variavel que armazena se o servidor é autenticado		 *	@access public		 */		public $Autenticado;				/**		 *	Variavel que armazena o usuario do servidor de email, caso autenticado		 *	@access public		 */		public $Usuario;				/**		 *	Variavel que armazena a senha do usuario do servidor de email, caso autenticado		 *	@access public		 */		public $Senha;				/**		 *	Variavel que armazena o email de quem está enviando		 *	@access public		 */		public $EmailDe;				/**		 *	Variavel que armazena o nome+email de quem está enviando, para aparecer no email		 *	@access public		 */		public $EmailDeVisual;						/**		 *	Variavel que armazena o email para quem vai		 *	@access public		 */		public $EmailPara;				/**		 *	Variavel que armazena o nome+email de quem está enviando, para aparecer no email		 *	@access public		 */		public $EmailParaVisual;				/**		 *	Variavel que armazena o assunto do email		 *	@access public		 */		public $Assunto;				/**		 *	Variavel que armazena a senha corpo do email		 *	@access public		 */		public $Corpo;				/**		 *	Vetor que armazena os arquivos para anexo		 *	@access private		 */		private $Anexos = array();				/**		 *	Variavel que armazena a situação do envio do email		 *	@access private		 */		private $erros = FALSE;			/**		 *	Construtor da classe		 *	@name __construct		 *	@access public		 */		public function __construct() {		} // __construct			/**		 *	Método que anexa um arquivo ao vetor		 *	@name anexarArquivo		 *	@param string $path - Caminho do arquivo		 *	@access public		 */		public function anexarArquivo($path) {			$this->Anexos[] = $path;		} // anexarArquivo				/**		 *	Método que verifica se a classe esta pronta está pronta para o envio de email		 *	@name verificarIntegridade		 *	@access private		 *	@return boolean		 */		private function verificarIntegridade() {			// Verifica as pendencias se o servidor for autenticado			if($this->Autenticado === TRUE) {				if((empty($this->Usuario)) || (empty($this->Senha))) {					$this->erros = TRUE;					return FALSE;				}			}						// Verifica se o servidor foi digitado			if(empty($this->Servidor)) {				$this->erros = TRUE;				return FALSE;			}						// Verifica se os outros parametros são validos			if((empty($this->EmailDe)) || (empty($this->EmailPara)) || (empty($this->Assunto)) || (empty($this->Corpo))) {				$this->erros = TRUE;				return FALSE;			}						return TRUE;		} // verificarIntegridade			/**		 *	Método que espera a resposta do servidor		 *	@name esperarResposta		 *	@access private		 *	@param integer $socket - Ponteiro para o socket		 *	@param integer $response - Codigo de resposta OK		 *	@return boolean		 */		private function esperarResposta($socket, $response) {			while (substr($server_response, 3, 1) != ' ') {				if (!($server_response = fgets($socket, 256))) {					$this->erros = TRUE;					return FALSE;				}				if (!(substr($server_response, 0, 3) == $response)) {					$this->erros = TRUE;					return FALSE;				}//				echo '<font color="red">S</font> <- ' . $server_response . '<br />';			}			return TRUE;		} // esperarResposta				/**		 *	Método que envia uma string ao servidor		 *	@name enviaPacote		 *	@access private		 *	@param integer $socket - Ponteiro para o socket		 *	@param integer $data - String contendo as informações à serem enviadas		 *	@return boolean		 */		private function enviaPacote($socket, $data) {			if(!fputs($socket, $data . "\r\n")) {				return FALSE;			}//			echo "<font color=\"blue\">C</font> -> " . $data . "<br />";			return TRUE;		} // enviaResposta			/**		 *	Método que envia o email		 *	@name Enviar		 *	@access prublic		 *	@return boolean		 */		function Enviar() {						$boundary = md5(date('r', time()));						// Verifica se esta pronto para iniciar o envio			if(!$this->verificarIntegridade()) {				return FALSE;			}			// Tenta conectar			if(!$socket = fsockopen($this->Servidor, $this->Porta, $errno, $errstr, 30)) {				$this->erros = TRUE;				return FALSE;			}					// Espera por resposta			$this->esperarResposta($socket, "220");					// Se o servidor é autenticado			if($this->Autenticado) {				$this->enviaPacote($socket, "EHLO " . $this->Servidor);				$this->esperarResposta($socket, "250");							$this->enviaPacote($socket, "AUTH LOGIN");				$this->esperarResposta($socket, "334");								$this->enviaPacote($socket, base64_encode($this->Usuario));				$this->esperarResposta($socket, "334");							$this->enviaPacote($socket, base64_encode($this->Senha));				$this->esperarResposta($socket, "235");			} else {				$this->enviaPacote($socket, "HELO " . $this->Servidor);				$this->esperarResposta($socket, "250");			}						// Envia quem está mandando o email			$this->enviaPacote($socket, "MAIL FROM: " . $this->EmailDe);			$this->esperarResposta($socket, "250");						// Envia quem esta recebendo o email			$Emails = explode(';', $this->EmailPara);			for($i=0;$i<count($Emails);$i++) {				$this->enviaPacote($socket, "RCPT TO: " . $Emails[$i]);				$this->esperarResposta($socket, "250");			}						// Diz ao servidor que estou pronto para enviar a mensagem			$this->enviaPacote($socket, "DATA");			$this->esperarResposta($socket, "354");			// Cabeçalho do email			if(strlen($this->EmailDeVisual) == 0) {				$this->enviaPacote($socket, "From: " . $this->EmailDe);			} else {				$this->enviaPacote($socket, "From: " .  $this->EmailDeVisual . " <" .  $this->EmailDe . ">");			}						$To = 'To: ';			$Emails = explode(';', $this->EmailPara);			for($i=0; $i<count($Emails); $i++) {				if(empty($Emails[$i])) {					continue;				}				$To .= $Emails[$i] . ', ';			}			$To = substr($To, 0, strrpos($To, ','));			$this->enviaPacote($socket, $To);						// Mando o assunto do email			$this->enviaPacote($socket, "Subject: " . $this->Assunto);						// Envia o cabeçalho			$this->enviaPacote($socket, "Date: " . date("d M y H:i:s"));			$this->enviaPacote($socket, "MIME-Version: 1.0");			$this->enviaPacote($socket, "Content-Type: multipart/mixed; boundary=" . $boundary);			$this->enviaPacote($socket, "--" . $boundary);			$this->enviaPacote($socket, "Content-Type: text/html; charset=" . $this->Codificacao . "\r\n");			$this->enviaPacote($socket, $this->Corpo);			$this->enviaPacote($socket, "\r\n");					// Verifica se existe arquivo para ser enviado junto			if(count($this->Anexos) > 0) {				for($i=0; $i<count($this->Anexos); $i++) {					$info = pathinfo($this->Anexos[$i]);					// Pega o tipo para o MIME TYPE					strtolower($info['extension']);					switch($tipo) {						case "jpeg":						case "jpg":							$Tipo = "image/jpeg";						break;						case "gif":							$Tipo = "image/gif";						break;						case "doc":							$Tipo = "application/msword";						break;						case "rar":							$Tipo = "application/rar";						break;						case "zip":							$Tipo = "application/zip";						break;						case "pdf":							$Tipo = "application/pdf";						break;						default:							$Tipo = "application/octet-stream";						break;					}										// Envia os cabeçalhos do anexo					$this->enviaPacote($socket, "--" . $boundary);					$this->enviaPacote($socket, "Content-Type: " . $Tipo . "; name=\"". $info['filename'] . "\"");					$this->enviaPacote($socket, "Content-Transfer-Encoding: base64");					$this->enviaPacote($socket, "Content-Disposition: attachment; filename=\"" . $info['filename'] . "\"");					$this->enviaPacote($socket, "\r\n");									// Envia o arquivo codificado					$this->enviaPacote($socket, base64_encode(file_get_contents($this->Anexos[$i])));					$this->enviaPacote($socket, "\r\n");				}				$this->enviaPacote($socket, "--" . $boundary . "--");			}						// Avisa o o termino do envio			$this->enviaPacote($socket, "\r\n\r\n.");			$this->esperarResposta($socket, "250");						// Sai do servidor e fecha o socket			$this->enviaPacote($socket, "QUIT");			fclose($socket);					// Retorna FALSE se o email não foi enviado			if($this->erros == TRUE) {				return FALSE;				// Ou TRUE se não houve erro			} else {				return TRUE;			}		} // Enviar	}?>
explicações

 

$Email = new SMTPMAIL; - Cria novo objeto

 

Atributos

$Email->Servidor - Servidor SMTP (não aceita SSL como gmail AINDA)

$Email->Autenticado - True se for autenticado, false se não for autenticado

$Email->Codificacao - Seta a codificação (UTF-8, ISO-8859-1, ...)

$Email->Usuario - Usuario do servidor SMTP

$Email->Senha - Senha do servidor SMTP

$Email->EmailDe - Email de quem está enviando o email

$Email->EmailPara - Email de quem irá receber o email

$Email->Assunto - Assunto do email

$Email->Corpo - Mensagem do email

 

Métodos

$Email->Anexar() - Anexa um arquivo, pode ser usado varias vezes, retorna true se enviar ou false se tiver erro

$Email->Enviar() - Envia o email, retorna true se enviar ou false se tiver erro

 

 

exemplo.php

<?php	require_once('smtpmail.class.php');		$smtp = new SMTPMAIL();	$smtp->Servidor  ='smtp.mail.yahoo.com.br';		$smtp->Autenticado = TRUE;	$smtp->Usuario = "meu_usuario";	$smtp->Senha = "minha_senha";		$smtp->Codificacao = "UTF-8";	$smtp->EmailDe = 'bruno0@gmail.com';	$smtp->EmailDeVisual = 'Bruno Pitteli Gonçalves <bruno.goncalves@added.com.br>';	$smtp->EmailPara = 'bruno1@gmail.com;bruno2@gmail.com';		$smtp->Assunto = 'Email Teste';		$smtp->Corpo = '<b>MEU CORPO HTML</b>';		$smtp->anexarArquivo('D:\\Bruno\\Fotos&Videos\\Carros\\03-07-07_0916.jpg');	$smtp->anexarArquivo('D:\\Bruno\\Fotos&Videos\\Carros\\Carro_11.jpg');		if($smtp->Enviar()) {		echo 'ok';	} else {		echo 'errado';	}?>

Sómente lembrando, PHP roda do em server side, logo os arquivos para o anexo devem estar no servidor do script. Se você precisa enviar um email de outro lugar, implemente um script de upload e depois envie o email

 

 

espero que gostem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá ScornInPC,Tentei utilizar sua classe, mas obtive o seguinte erro:

Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /usr/local/apache/htdocs/mail/smtp.class.php on line 143Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.mail.yahoo.com.br:25 (Unknown error) in /usr/local/apache/htdocs/mail/smtp.class.php on line 143Warning: fgets(): supplied argument is not a valid stream resource in /usr/local/apache/htdocs/mail/smtp.class.php on line 131

Você poderia me ajudar dissendo o que tenho de errado no meu servidor?Grato. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ScornInPCNão consegui enviar email , recebo a mensagem do script "Email não pode ser enviado". Acho q não tem nada de esrrado nas configurações. Estou usando smpt da bol, e quando uso o outlook com as mesmas configurções funciona legal. Saberia me dizer o que podeia ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu configurei lá, e no meu deu o seguinte erro:

CODE
erros=TRUE; return FALSE; } $File=fread($fp, filesize($arq)); fclose($fp); return base64_encode($File); } //Retorna o nome do arquivo function PegarNome($str) { $Nome=""; $i=strlen($str)-1; while($str[$i]!=$this->Barra) $i--; $i++; $j=0; for($i; $iAnexos[$this->NumAnexos]=$arq; $this->NumAnexos++; return TRUE; } //Função que verifica se as variaveis estão OK function Verificar() { //Verifica se é um servidor autenticado if( $this->Autenticado ) if( !isset($this->Usuario) || !isset($this->Senha) ) //Se for autenticado, verifica o usuario e a senha $this->erros=TRUE; //Verifica se o servidor foi digitado if( !isset($this->Servidor) ) $this->erros=TRUE; //Verifica se os parametros são validos if( !isset($this->EmailDe) || !isset($this->EmailPara) || !isset($this->Assunto) || !isset($this->Corpo) ) $this->erros=TRUE; } //Função que espera o servidor responder function Esperar_Resp($socket, $response, $line = __LINE__) { while (substr($server_response, 3, 1) != ' ') if (!($server_response = fgets($socket, 256))) $this->erros=TRUE; if (!(substr($server_response, 0, 3) == $response)) $this->erros=TRUE; } function Enviar() { $this->Verificar(); if( !$this->erros ) { //Tenta conectar if( !$socket=fsockopen($this->Servidor, $this->Porta, $errno, $errstr, 20) ) $this->erros=TRUE; //Espera por resposta $this->Esperar_Resp($socket, "220", __LINE__); //Verifica se o email esta sendo autenticado //Caso for ele ira mandar um EHLO, pra dizer que vai ser autenticado //Caso não for ele manda um HELO simples. if( $this->Autenticado ) { fputs($socket, "EHLO " . $this->Servidor . "\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); fputs($socket, "AUTH LOGIN\r\n"); $this->Esperar_Resp($socket, "334", __LINE__); fputs($socket, base64_encode($this->Usuario) . "\r\n"); $this->Esperar_Resp($socket, "334", __LINE__); fputs($socket, base64_encode($this->Senha) . "\r\n"); $this->Esperar_Resp($socket, "235", __LINE__); } else { fputs($socket, "HELO " . $this->Servidor . "\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); } //Envia quem está mandando o email fputs($socket, "MAIL FROM: " . $this->EmailDe . "\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); //Diz ao servidor quem vai receber o email fputs($socket, "RCPT TO: " . $this->EmailPara . "\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); //Diz ao servidor que estou pronto para enviar a mensagem fputs($socket, "DATA\r\n"); $this->Esperar_Resp($socket, "354", __LINE__); //Cabeçalho do email fputs($socket, "From: " . $this->EmailDe . "\r\n"); fputs($socket, "To: " . $this->EmailPara . "\r\n"); //Mando o assunto do email fputs($socket, "Subject: " . $this->Assunto . "\r\n"); //Envia o cabeçalho fputs($socket, "MIME-Version: 1.0\r\n"); fputs($socket, "Content-Type: multipart/mixed;\r\n"); fputs($socket, " boundary=KkK170891tpbkKk__FV_KKKkkkjjwq\r\n"); fputs($socket, "\r\n"); fputs($socket, "\r\n"); fputs($socket, "--KkK170891tpbkKk__FV_KKKkkkjjwq\r\n"); fputs($socket, "Content-Type: text/plain; charset=US-ASCII\r\n"); fputs($socket, "\r\n"); fputs($socket, $this->Corpo); fputs($socket, "\r\n\r\n"); //verifica se existe arquivo para ser enviado junto if($this->NumAnexos>0) { for($i=0; $i<$this->NumAnexos; $i++) { //Pega o tipo para o MIME TYPE $tipo=$this->PegarTipo($this->Anexos[$i]); strtolower($tipo); switch($tipo) { case "jpeg": case "jpg": $Tipo="image/jpeg"; break; case "gif": $Tipo="image/gif"; break; case "doc": $Tipo="application/msword"; break; case "rar": $Tipo="application/rar"; break; case "zip": $Tipo="application/zip"; break; default: $Tipo="application/octet-stream"; break; } //Pega o nome do arquivo $Nome=$this->PegarNome($this->Anexos[$i]); fputs($socket, "--KkK170891tpbkKk__FV_KKKkkkjjwq\r\n"); fputs($socket, "Content-Type: " . $Tipo . "; name=\"". $Nome . "\"\r\n"); fputs($socket, "Content-Transfer-Encoding: base64\r\n"); fputs($socket, "Content-Disposition: attachment; filename=\"" . $Nome . "\"\r\n"); fputs($socket, "\r\n"); fputs($socket, $this->CodarArquivo($this->Anexos[$i])); fputs($socket, "\r\n"); } fputs($socket, "--KkK170891tpbkKk__FV_KKKkkkjjwq--\r\n"); } //Avisa o servidor que ja acabei de enviar a mensagem fputs($socket, "\r\n.\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); //Sai do servidor e fecha o socket fputs($socket, "QUIT\r\n"); fclose($socket); //Retorna um TRUE pra dizer que o email foi enviado if ($this->erros==TRUE) return FALSE; else return TRUE; } } } ?>

Fatal error: Class 'SendMail' not found in D:\sites\teste\smtp\index.php on line 10

 

 

 

bom este erro acima eu corrigi, foi só alterar a abertura do php, trocar o </ por <?php,. porém agora ele fica lá processando um tempão, para ser sincero, deixou o pc lento e não terminou a execussão. flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

DEU CERTO !!!!!

 

Cara não to acreditando...

 

Passei 2 dias inteiros tentando arrumar uma forma de mandar email através de formulário, testei diversas classes, funções e nada.

Uma hora eu encontrava uma solução que não atendia, outra as vezes parecia que atendia mas não funcionava.

UFA...

 

Só lembrando o meu problema era o seguinte:

 

Enviar Formulário por email(sem anexo mesmo), em ambiente Windows+PHP rodando em servidor local, utilizando servidor SMTP externo, já que não tenho servidor SMTP rodando aqui na minha rede.

 

Depois de várias tentativas enfim deu certo !

:-)

 

Obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho um pergunta.

 

pra que serve a linha

 

 

$Email->Barra="\\"; //barra pra windows

 

pra que serve essa "\\"?????

 

 

==========================

 

a sim... não estou conseguindo enviar o email.

 

coloquei um arquivo chamado "temp.dat" dentro da pasta aonde o arquivo que envia o email e a classe estão, mas o email não é enviado e acontece um erro dizendo que o tempo maximo para o envio é de 60 segundos..

 

pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, atualizei a classe, com algumas funcionalidades ok?

 

	/**

* 0.1

* Classe inicial

*

* 0.2

* Possibilidade de envio de email HTML

*

* 0.3

* Suporte a varios TOs separados por;

*

**/

 

Raficcha:

Isso foi removido, não servia para nada mesmo. =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

A parte do Anexo não funcionou aqui...

 

Troquei o:

 

$Email->Anexar("arqui1");

por

 

$Email->anexarArquivo("arqui1");

mas mesmo assim, muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo hgb7,

 

Ja mudei o nome do método.

 

Mas pq não funcionou? posta o código ai pra gente ver =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui no meu deu esse erro:

 

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/admin/public_html/testes/email/smtp.class.php on line 58

 

sabe me dizer o quer dizer esse erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parece que você não esta com o PHP 5, pois ele não esta reconhecendo a palavra "public"

Compartilhar este post


Link para o post
Compartilhar em outros sites

$Email->anexarArquivo("D:\Documents and Settings\henrique\Meus documentos\jantar_acridas080918.jpg");   //Anexo 1
	//$Email->anexarArquivo("arqui2");   //Anexo 2

Mudei só isso mesmo... mas quando envio com anexo aparece isso:

 

Corpo do email --90ccb306c46c988e47d6799e2108ccf7 Content-Type: application/octet-stream; name="jantar_acridas080918" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="jantar_acridas080918" /9j/4AAQSkZJRgABAQEBLAEsAAD... (e um monte de codigo da mensagem...)

Como fazer para a aparecer a imagem? dá para configurar para mandar para várias pessoas ao mesmo tempo? precisa do phpmailer para rodar este script?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

seu arquivo não tem extenssão? pode ser isso, não testei =/

só precisa de suporte à socket.

quando for usar caminhos windows, use \\

"D:\\Documents and Settings\\henrique\\Meus documentos\\jantar_acridas080918.jpg"

para escapar os caracteres.

para enviar para varios emails, faça assim

 

$Email->EmailPara = 'bruno@gmail.com;bruno2@gmail.com;bruno3@gmail.com'

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa! funcionou... vlw... só que chegou com .dat ... sabe pq?

e como mandar para vários email, sem os outros veem que foi para vários? somente com aqueles "emails lista" ?

Obrigado pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi .dat? aheuahe sei pq não, só vendo o código :P/>

 

esse negocio de ir como oculto é furada, ainda não consegui fazer isso. Uso em um sistema de cotações, e para que os fornecedores não vejam o email uns dos outros, eu envio "um à um", é mais garantido.

 

mude o email e envie outra vez, não precisa criar a classe outra vez

 

foreach($fornecedores as $fornecedor) {
	$Email->EmailPara = $fornecedor;
	$Email->Enviar();
}

sacou? http://forum.imasters.com.br/public/style_emoticons/default/clap.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, atualizei o teste na mensagem principal tambem.

para enviar email HTML, é só colocar o HTML no CORPO

 

$smtp->Corpo = '<b>MEU CORPO HTML</b>';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz isso mais naum deu certo brother, olha só

 

Naum fica em html e a acentuação fica com simbolos

 

/*
*   Duvidas:
*   http://www.fai.com.br/forum &&
*   scorninpc[(at])gmail([dot)]com &&
*   #motd@irc.freenode.net
*/
	include "smtp.class.php";

	$Email = new SMTPMAIL();
	$Email->Servidor="smtp.sdfsdf.com.br"; //Servidor

	$Email->Autenticado=TRUE;  //É autenticado
	$Email->Usuario="asdsad";  //Usuario
	$Email->Senha="ssss";	//Senha
	
	$Email->EmailDe="$email";  //Seu email
	$Email->EmailPara="sdfsdf@adasd";  //Destino
	$Email->Assunto="Formulário de contato Mercoplaza.com.br";  //Assunto
	$Email->Corpo="<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns=http://www.w3.org/1999/xhtml>
<head>
<meta http-equiv=Content-Type content=text/html; charset=utf-8 />
<title>Formulario de contato</title>
<style type=text/css>
.tabela {
font-size: 10px;
font-family: Verdana, Arial, Helvetica, sans-serif;
color:#666666;
background: #ffffff;
BORDER-RIGHT: #666666 1px dotted; 
BORDER-TOP: #666666 1px dotted; 
BORDER-LEFT: #666666 1px dotted; 
BORDER-BOTTOM: #666666 1px dotted; 
}
</style>
</head>

<body>
<table width=600 border=0 class=tabela>
  <tr>
	<td valign=top></div>
	  <p><strong>Nome:</strong><br>
		$nome<br>
		<br>
		<strong>Telefone:</strong><br>
		$telefone<br>
		  <br>
		Email:<br>
		$email<br>
		  <br>
		Mensagem: <br>
	  $mensagem<br>
	  <br>
	  <br>
	  <br>
	  </p>
	</td>
  </tr>
</table></body>
</html>
";  //Corpo

/*	 $Email->anexarArquivo("arqui1");   //Anexo 1
	$Email->anexarArquivo("arqui2");   //Anexo 2
 */
 
 

 
 
	if($Email->Enviar())		   //Envia o email
		echo "Email enviado com sucesso, obrigado pelo contato.";
	else
		echo "Email não pode ser enviado";

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza,

 

sobre os caracteres, eu estou usando ISO-8859-1 no email, e você UTF-8 no html, não sei até que ponto isso pode inteferir.

talvez setar a codificação ao enviar email seja uma melhoria a ser feita.

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.