Caros leitores (poucos mas bons),
Já à um tempo que não escrevo nada neste espaço, mas esta semana apareceu-me um problema desta vez em hardware.
Equipamento: Portail
Marca: LG
Modelo: E500
Problema:
O objectivo inicial era compreender o porque do portátil ter deixado de entrar no Microsoft Windows 7, o qual iniciava normalmente até à janela do Aguarde, onde acabava por bloquear e ao fim de um tempo, reiniciar.
Soluções:
Tendo em conta que em modo de segurança funcionava, a minha primeira suspeita foi problemas de arranque de algum componente de hardware.
E após uma nova formatação que correu tudo às mil maravilhas, passo para as actualizações automáticas, que fizeram com que volta-se ao circuito de bloqueios.
Comecei então por desligar tudo o que era periféricos (modem, wireless, bluetooth, teclado, rato) e nada resolvia. Fiz testes de memoria com o memtest e tudo estava a 100%.
O motivo, e solução final:
Após tudo removido, sobrava a placa gráfica, entrei em modo de segurança, e removi os drivers da NVidia pois estes foram instalados pelo windows update, e foi a solução.
Depois nos updates do windows, é preciso marcar como não pretendemos que a actualização da NVidia seja feita permanentemente, e ficamos exclusivamente a trabalhar com o driver PnP Genérico, o que funciona sem problemas, com a definição do ecrã no máximo (1280x800).
Nota:
Caso alguém tenha questões sobre problemas de hardware ou software, sinta-se à vontade para enviar um email.
quinta-feira, 19 de dezembro de 2013
segunda-feira, 24 de setembro de 2012
PHP , SMTP - Função email autenticado
A função mail() no PHP, é uma função simples e usada largamente por quem deixa ao critério do servidor o envio de emails de dentro dos projecto, e esta função usa o servidor de envio de emails interno para o fazer.
No entanto, recentemente (não sei precisar o tempo) um dos maiores revendedores de serviços de alojamento do nosso país a esotérica, passo a não permitir o envio de email de dentro dos clientes sem que estes se autenticassem via SMTP.
Foi por este motivo que alguém me contacto, e me pediu para resolver o problema.
Pois bem, para começar tive que converter todos os ficheiros que enviavam emails, e retirar a função mail.
Para não andar sempre a importar o PHPMailer, decidi criar um ficheiro de envio de email, ao qual chamei smtpMailConfig.php o qual deverá ser adicionado com include() a cada inicio de página onde possa ser necessário.
Ficheiro.php
<?php
# Ficheiro de configurações de SMTP e ligação com PHPMailer
include("smtpMailConfig.php");
?>
smtpMailConfig.php
<?php
require("phpmailer/class.phpmailer.php");
/*
* Função de Enviar o email
* $vFrom - Email de Origem
* $vFromNome - Nome de Origem
* $vTo - Email de destino
* $vToNome - Nome de destino
* $vAssunto - Assunto do Email
* $vEmail - Texto do Email
* $vCC - Parametro CC (separados por ;)
*/
function fcEnviarEmail($vFrom,$vFromName,$vTo,$vToName,$vAssunto,$vEmail,$vCC){
global $mail;
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
# Dados de Ligação
$mail->Host = "127.0.0.1";
$mail->Username = "info@byteajudarblog.pt";
$mail->Password = "emailpassword";
# Dados Gerais
$mail->From = $vFrom;
$mail->FromName = $vFromName;
$mail->AddAddress($vTo, $vToName);
if(!empty($vCC)){
$vCCArr = explode(';',$vCC);
foreach($vCCArr as $key){
$mail->AddCC($key);
}
}
$mail->IsHTML(true);
$mail->Subject = $vAssunto;
$mail->Body = $vEmail;
if(!$mail->Send()){
return 0;
//echo $mail->ErrorInfo;
}else{
return 1; //echo "Email Enviado";
}
}
?>
Ficheiro.php
<?php
$assunto = "Email Online";
$texto = "Texto.......texto";
$mailOk = fcEnviarEmail("info@blog.pt","Nome Blog","email@destino.com",'Destino',$assunto,$texto,'cc1@destino.com;cc2@destino.com');
if($mailOk==1)
echo "Email enviado com sucesso"; # Ou mais código php
else
echo "Erro a enviar email";
?>
Autenticação nos serviços Esotérica
Para quem tenha mesmo assim erro a enviar email pelo serviço desta empresa, (e esta situação aconteceu comigo) basta no painel de controlo do domínio (s) verificar se no servidor de DNS existe indicação do localhost (IP: 127.0.0.1), caso não exista tem que adicionar.
======================
Nota: As minhas desculpas pelo código não estar com coloração, mas o blogger não tem essa ferramenta.
No entanto, recentemente (não sei precisar o tempo) um dos maiores revendedores de serviços de alojamento do nosso país a esotérica, passo a não permitir o envio de email de dentro dos clientes sem que estes se autenticassem via SMTP.
Foi por este motivo que alguém me contacto, e me pediu para resolver o problema.
Pois bem, para começar tive que converter todos os ficheiros que enviavam emails, e retirar a função mail.
PHP - Email autenticado
o PHPMailer é uma classe de php que trata da ligação e de enviar os emails autenticados, por isso bastou importar o ficheiro e tratar do resto.Para não andar sempre a importar o PHPMailer, decidi criar um ficheiro de envio de email, ao qual chamei smtpMailConfig.php o qual deverá ser adicionado com include() a cada inicio de página onde possa ser necessário.
Ficheiro.php
<?php
# Ficheiro de configurações de SMTP e ligação com PHPMailer
include("smtpMailConfig.php");
?>
smtpMailConfig.php
<?php
require("phpmailer/class.phpmailer.php");
/*
* Função de Enviar o email
* $vFrom - Email de Origem
* $vFromNome - Nome de Origem
* $vTo - Email de destino
* $vToNome - Nome de destino
* $vAssunto - Assunto do Email
* $vEmail - Texto do Email
* $vCC - Parametro CC (separados por ;)
*/
function fcEnviarEmail($vFrom,$vFromName,$vTo,$vToName,$vAssunto,$vEmail,$vCC){
global $mail;
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
# Dados de Ligação
$mail->Host = "127.0.0.1";
$mail->Username = "info@byteajudarblog.pt";
$mail->Password = "emailpassword";
# Dados Gerais
$mail->From = $vFrom;
$mail->FromName = $vFromName;
$mail->AddAddress($vTo, $vToName);
if(!empty($vCC)){
$vCCArr = explode(';',$vCC);
foreach($vCCArr as $key){
$mail->AddCC($key);
}
}
$mail->IsHTML(true);
$mail->Subject = $vAssunto;
$mail->Body = $vEmail;
if(!$mail->Send()){
return 0;
//echo $mail->ErrorInfo;
}else{
return 1; //echo "Email Enviado";
}
}
?>
Enviar email pela função
Após a aplicação dos passos acima, basta chamar a função e passar os parâmetros:Ficheiro.php
<?php
$assunto = "Email Online";
$texto = "Texto.......texto";
$mailOk = fcEnviarEmail("info@blog.pt","Nome Blog","email@destino.com",'Destino',$assunto,$texto,'cc1@destino.com;cc2@destino.com');
if($mailOk==1)
echo "Email enviado com sucesso"; # Ou mais código php
else
echo "Erro a enviar email";
?>
Autenticação nos serviços Esotérica
Para quem tenha mesmo assim erro a enviar email pelo serviço desta empresa, (e esta situação aconteceu comigo) basta no painel de controlo do domínio (s) verificar se no servidor de DNS existe indicação do localhost (IP: 127.0.0.1), caso não exista tem que adicionar.
======================
Nota: As minhas desculpas pelo código não estar com coloração, mas o blogger não tem essa ferramenta.
sexta-feira, 21 de setembro de 2012
MySQL Multi-Premissões em servidores remotos
No seguimento da publicação anterior, foi-me sugerido uma situação um pouco diferente, que é quando necessitamos de fazer exactamente a mesma operação mas com recurso à consola.
É verdade que é possível conectar um software de gestão de base de dados ao servidor remoto, mas também é verdade que nem sempre que tem servidor disponibiliza esse acesso assim como pode aumentar o risco de ataque ao sistema.
A informação que se segue foi testada e elaborada com recurso um MySQL Server instalado num computador com Ubuntu Linux, mas o importante é existir um acesso ao servidor.
após o enter aguarda que se escreva a password de acesso.
Nota: exemplo com root, mas pode ser qualquer utilizador desde que tenha acesso total
Após aceder com sucesso ao mysql a consola passa ter a informação que passa a aceitar comandos para o mysql aparecendo no inicio mysql>
CREATE USER - É o comando principal
- Entre plicas ( ' ) o nome do utilizador seguido de um at (arroba) @ e entre plicas o localhost
Nota: se quiser acesso exterior em vez de localhost deverá usar o símbolo de percentagem (%)
IDENTIFIED BY - Refere que o utilizador vai ter uma password de acesso
- Entre plicas a password
- Não esquecer de terminar com ponto e virgula (;) se não a consola ao carregar no enter vai passar para uma linha com o simbolo -> se isto acontecer, basta aplicar o ; e enter.
No fim deverá receber a seguinte mensagem na janela
Query OK, 0 rows affected (0.00 sec)
Agora saia da consola do MySQL
quit
Mais informações aqui
- Usar um editor de texto na consola (vi, nano, pico),
- Enviar o ficheiro por SSH ou FTP
Nota: Garanta que sabe a localização de onde coloca o ficheiro.
mysql -u root -p 'blogBD' < /dir/sql/ficheiro.sql > /dir/sql/resultado.sql
- Sendo 'blogBD' o nome da base de dados de destino
A consola volta a pedir a password, e se tudo estiver correcto volta à condição inicial, sendo que o ficheiro resultado.sql foi criado na directoria indicada.
Para tornar o processo mais rápido, pode adicionar no fim do ficheiro o comando:
FLUSH PRIVILEGES;
mysql -u root -p 'blogBD' < /dir/sql/resultado.sql;
- Sendo 'blogBD' o nome da base de dados que vai receber a informação
mysql -u blogUser -p
USE blogBD
SHOW TABLES
--------------------------------------------
Bom Fim de Semana, se tiverem questões disponham e comentar ou enviar email.
É verdade que é possível conectar um software de gestão de base de dados ao servidor remoto, mas também é verdade que nem sempre que tem servidor disponibiliza esse acesso assim como pode aumentar o risco de ataque ao sistema.
A informação que se segue foi testada e elaborada com recurso um MySQL Server instalado num computador com Ubuntu Linux, mas o importante é existir um acesso ao servidor.
Aceder ao MySQL
mysql -u root -papós o enter aguarda que se escreva a password de acesso.
Nota: exemplo com root, mas pode ser qualquer utilizador desde que tenha acesso total
Após aceder com sucesso ao mysql a consola passa ter a informação que passa a aceitar comandos para o mysql aparecendo no inicio mysql>
Criar novo utilizado
CREATE USER 'blogUser'@'localhost' IDENTIFIED BY 'uma_password';CREATE USER - É o comando principal
- Entre plicas ( ' ) o nome do utilizador seguido de um at (arroba) @ e entre plicas o localhost
Nota: se quiser acesso exterior em vez de localhost deverá usar o símbolo de percentagem (%)
IDENTIFIED BY - Refere que o utilizador vai ter uma password de acesso
- Entre plicas a password
- Não esquecer de terminar com ponto e virgula (;) se não a consola ao carregar no enter vai passar para uma linha com o simbolo -> se isto acontecer, basta aplicar o ; e enter.
No fim deverá receber a seguinte mensagem na janela
Query OK, 0 rows affected (0.00 sec)
Agora saia da consola do MySQL
quit
Mais informações aqui
Criar ficheiro de SQL
Para usar o código de criar as permissões referido na publicação anterior pode fazer de várias maneiras:- Usar um editor de texto na consola (vi, nano, pico),
- Enviar o ficheiro por SSH ou FTP
Nota: Garanta que sabe a localização de onde coloca o ficheiro.
Executar ficheiro SQL e exportar o resultado
Para executar o ficheiro escreva o seguinte comando:mysql -u root -p 'blogBD' < /dir/sql/ficheiro.sql > /dir/sql/resultado.sql
- Sendo 'blogBD' o nome da base de dados de destino
A consola volta a pedir a password, e se tudo estiver correcto volta à condição inicial, sendo que o ficheiro resultado.sql foi criado na directoria indicada.
Verificar ficheiro SQL
Agora é necessário dar uma vista de olhos no ficheiro, navegue até à pasta, e edite o ficheiro, neste caso é mesmo necessário porque o titulo da coluna também é exportada, logo tem que remover a 1ª linha do ficheiro.Para tornar o processo mais rápido, pode adicionar no fim do ficheiro o comando:
FLUSH PRIVILEGES;
Executar ficheiro SQL
Por fim, com o ficheiro já operacional, basta indicar o seguinte comando:mysql -u root -p 'blogBD' < /dir/sql/resultado.sql;
- Sendo 'blogBD' o nome da base de dados que vai receber a informação
Testar novo utilizador
Agora que o novo utilizador foi criado e os privilégios atribuídos, pode fazer o teste fazendo login e acedendo à base de dados, com os seguintes comandos:mysql -u blogUser -p
USE blogBD
SHOW TABLES
--------------------------------------------
Bom Fim de Semana, se tiverem questões disponham e comentar ou enviar email.
quarta-feira, 19 de setembro de 2012
MySQL - Permissões em várias tabelas
Como diz o titulo esta publicação refere-se ao motor de base de dados MySQL, e a situação que surgiu tinha como base a atribuição de permissões a um determinado utilizador a várias tabelas, mas não todas.
Esta operação mesmo com programa de gestão de bases de dados como o MySQL Workbench é um operação que se torna penosa, visto que usa sistemas de árvore para navegar e vistos para marcar as permissões.
A maneira mais rápida então que arranjei de resolver isto, é através da criação de um script para atribuir as permissões ao utilizador por tabela dentro da base de dados.
Execute o seguinte SQL.
Nota: Garanta que o seu utilizador tem permissões totais dentro do MySQL, porque o script vai consultar tabelas de controle do motor.
Antes de prosseguir, já deve ter o utilizador criado no MySQL
-- Cria a linha a utilizar na próxima execução, atribuía mais permissões se assim se justificar
SELECT CONCAT("GRANT SELECT, INSERT, UPDATE, DELETE ON ", TABLE_NAME," TO 'testeUser'@'localhost' ;") AS ex
-- Aqui vai ao motor requisitar todas as tabelas
FROM INFORMATION_SCHEMA.TABLES
-- Indica que só quer as tabelas da base de dados indicada no WHERE
WHERE TABLE_SCHEMA = "NomeBaseDados"
-- Se pretender excluir algumas tabelas indique o nome das mesmas
AND TABLE_NAME NOT IN ('tblPagamentos','tblBancos');
Nota: se pretender incluir apenas algumas tabelas as linha acima deverá ser:
AND TABLE_NAME IN ('tblPagamentos','tblBancos');
O resultado final, deverá ser exportado para ficheiro de texto.
Próximo passo, executar o que está no ficheiro de texto.
E por fim executar o commando :
FLUSH PRIVILEGES;
Para que todas as permissões se tornem activas.
Esta operação mesmo com programa de gestão de bases de dados como o MySQL Workbench é um operação que se torna penosa, visto que usa sistemas de árvore para navegar e vistos para marcar as permissões.
A maneira mais rápida então que arranjei de resolver isto, é através da criação de um script para atribuir as permissões ao utilizador por tabela dentro da base de dados.
Execute o seguinte SQL.
Nota: Garanta que o seu utilizador tem permissões totais dentro do MySQL, porque o script vai consultar tabelas de controle do motor.
Antes de prosseguir, já deve ter o utilizador criado no MySQL
-- Cria a linha a utilizar na próxima execução, atribuía mais permissões se assim se justificar
SELECT CONCAT("GRANT SELECT, INSERT, UPDATE, DELETE ON ", TABLE_NAME," TO 'testeUser'@'localhost' ;") AS ex
-- Aqui vai ao motor requisitar todas as tabelas
FROM INFORMATION_SCHEMA.TABLES
-- Indica que só quer as tabelas da base de dados indicada no WHERE
WHERE TABLE_SCHEMA = "NomeBaseDados"
-- Se pretender excluir algumas tabelas indique o nome das mesmas
AND TABLE_NAME NOT IN ('tblPagamentos','tblBancos');
Nota: se pretender incluir apenas algumas tabelas as linha acima deverá ser:
AND TABLE_NAME IN ('tblPagamentos','tblBancos');
O resultado final, deverá ser exportado para ficheiro de texto.
Próximo passo, executar o que está no ficheiro de texto.
E por fim executar o commando :
FLUSH PRIVILEGES;
Para que todas as permissões se tornem activas.
terça-feira, 18 de setembro de 2012
Importar Contactos para Outlook via CSV
Quem lida com a área da informática muita vez depara-se com questões que nem sempre está à espera, e como tudo na vida, ninguém sabe tudo, e algumas coisas carecem de alguma pesquisa e outras apenas olhar para as ferramentas que já existem.
Para primeira publicação (a apresentação não conta), decidi partilhar convosco uma situação que me foi pedida por um cliente meu.
Como esta publicação é sobre a importação, vou deixar a configuração para descarregar os emails de lado, se alguém pretender, pode pedir que farei uma publicação a explicar essa parte.
Primeiro é necessário exportar os dados da plataforma para o nosso computador.
Para primeira publicação (a apresentação não conta), decidi partilhar convosco uma situação que me foi pedida por um cliente meu.
Situação:
O cliente em questão, estava a trabalhar com a plataforma HORDE para gerir os seus emails e a sua lista de contactos, no entanto existiam pormenores que ele pretendia nos quais esta plataforma não o podia ajudar. Foi então que me pediu se era possivel fazer ligação ao servidor e usar o Microsoft Outlook 2007 e deveria também importar os contacto da sua lista que já estava com mais de 1000 contactos.Resolução:
Como esta publicação é sobre a importação, vou deixar a configuração para descarregar os emails de lado, se alguém pretender, pode pedir que farei uma publicação a explicar essa parte.
Primeiro é necessário exportar os dados da plataforma para o nosso computador.
- No menu lateral escolha a opção "Address Book" (livro de endereços)
- Seleccione na barra superior do HORDE existe a opção Import/Export
- No grupo de opções Exportar, escolha a opção "Comma separated values (Microsoft Outlook)"
Nota: No tipo de exportação já podem verificar o que quer dizer CSV, traduzido para português é um ficheiro em que os valores são separados por virgulas.
- Clique em export ... aguarde algum tempo (desde segundos a minutos dependendo da quantidade de dados)
Agora dependendo do seu navegar um ficheiro "contacts.csv" deverá ser guardado.
Iniciei o Microsoft Outlook
- Dependendo da versão (2003/2007/2010) no menu ficheiro procure a opção Importar/Exportar
- Na nova janela escolha a opção "Importar de outro programa ou ficheiro" - Seguinte
- Nas opções disponíveis procure a opção "Valores separados por virgulas (Windows)" - Seguinte
- Indique a localização do ficheiro que fez o download, e verifique das opções abaixo qual a que melhor se adapta a sua situação
- A próxima janela pergunta para onde são os dados, deverá escolher a opção de "Contactos" - Seguinte
- Agora é a fase final, mas mais importante, deverá escolher a opção "Mapear Campos", porque muitas vezes os títulos dos campos não são iguais, e no fim poderá não ter nada importado.
- Para tal, basta arrastar os campos do lado esquerdo para os títulos do lado direito e largar - OK
- Por fim, botão Concluir e aguardar que a importação seja feita.
terça-feira, 21 de agosto de 2012
5, 4, 3, 2 ,1 - vamos lá arrancar com isto
É verdade, este blog vai mesmo arrancar.
Era uma ideia já com um tempo, visto que tenho uma ligação de alguns anos com a área da informática e como vou tendo de vez em quando uns problemas em mãos, lembrei-me que o blog é o local onde posso partilhar esses problemas, mas principalmente as soluções encontradas.
Assim sendo, quem vier visitar este espaço, irá encontrar problemas diversos sobre informática, que vão desde hardware, redes, sistemas operativos (Windows, Linux, OSX), programação, telemóveis e electrónica.
Todos os visitantes estão convidados a colocar questões, as quais terei todo o gosto em responder.
Era uma ideia já com um tempo, visto que tenho uma ligação de alguns anos com a área da informática e como vou tendo de vez em quando uns problemas em mãos, lembrei-me que o blog é o local onde posso partilhar esses problemas, mas principalmente as soluções encontradas.
Assim sendo, quem vier visitar este espaço, irá encontrar problemas diversos sobre informática, que vão desde hardware, redes, sistemas operativos (Windows, Linux, OSX), programação, telemóveis e electrónica.
Todos os visitantes estão convidados a colocar questões, as quais terei todo o gosto em responder.
Etiquetas:
hardware,
Informática,
Linux,
OSX Soluções,
Problemas,
programação,
redes,
sistemas operativos,
telemóveis e electrónica.,
Windows
Subscrever:
Mensagens (Atom)




