PHPMAILLER + TCPDF attachement

    Grifen
    Por Grifen,

    Boa noite pessoal, 

    Tenho este codigo em php, se o ficheiro for um de texto ou uma imagem ele envia o mail certo com anexo se for um 

    $pdf->Output($_SERVER["DOCUMENT_ROOT"].'/tmp/'.$doc_no.'.pdf', 'F');

    ou 'S'

    pdf em string o anexo ou mesmo salvo em disco e anexado não segue vai mail só com texto sem anexo.

     

    Alguma ideia? isto já funcionou noutro ubuntu....

     

    
    //email if request[mail] = 1
    IF($_REQUEST[email] == '1'){
    
    include '../../../../phpmailer/class.smtp.php';
    include '../../../../phpmailer/class.phpmailer.php';
    
    $def_mail=$database->query("SELECT * FROM fat_definicoes_email where ativo='1' and id_tipo_doc = '13'")->fetch();
    
    
    $mail= new PHPMailer(); // defaults to using php "mail()"
    $mail->IsSMTP();
    $mail->Host = $def_mail[host];
    $mail->SMTPAuth = true;
    $mail->Username = $def_mail[username];
    $mail->Password = $def_mail[password];
    $mail->AddReplyTo($def_mail[email],$def_mail[nome_completo]);
    $mail->SetFrom($def_mail[email], $def_mail[nome_completo]);
    $mail->AddAddress($dados_cliente[email]);
    $mail->Subject    = $def_mail[assunto];
    //$mail->AltBody  = $def_mail[body]; // optional, comment out and test
    
    $mail->Body = $def_mail[body].$anexo;// optional, comment out and test
    $anexo = $_SERVER["DOCUMENT_ROOT"].'/tmp'.$doc_no.'.pdf';
    $mail->addAttachment($anexo);      // attachment
    
    if(!$mail->Send()) 
       {
        echo "Erro: " . $mail->ErrorInfo;
       } 
    else 
      {
      echo "Enviado";
      unlink($anexo);
     }
     $window_close='window.close();';
    $pdf->IncludeJS($window_close);
    }

     

    • 0 respostas

    Re: Proteger e-mail de crawler bot's

    Knitter
    Por Knitter,
    1 hora atrás, redinpais disse:

    Fico sensível aos vossos "avisos" relacionados com a carga e picos de esforço, mas tal como a patente é um modelo teórico, também os receios que vocês relatam só passam a fazer sentido após os testes a efetuar num modelo funcional minimo. Prefiro aguardar essa possibilidade na vez de desistir só porque se diz que sim.

    O mundo está cheio de exemplos de grandes feitos que foram recusados e mal vistos.

    As minhas reservas tem origem, principalmente, na falta de explicação do modelo teórico para aquilo que é a realidade conhecida no envio de mensagens na rede (mesmo restringindo apenas à Internet), na falta de informação sobre questões de segurança/privacidade e em não encontrar, como utilizador de serviços de envio, vantagens que me façam mudar para um sistema diferente do que tenho. Após ler a patente e as descrições aqui apresentadas, fico com a sensação que há um foco muito grande em desenvolver um sistema cujo impacto seja forte para um spammer sem considerar os operadores de boa fé, que são a maioria e que serão também alvo de um grande impacto ou penalização. Sendo estes quem faz alterar o mercado, seria a estes que o modelo deveria cativar.

    Usando valores reais de um serviço que controlo, 51.758 e-mails num mês, num total de 45GB de informação. Considerando o funcionamento proposto, estamos a falar uma fila de envio de aproximadamente 52.000 emails, aos quais acrescem as suas 52.000 notificações (também elas podem ser vistas como e-mails). Não tenho qualquer razão para trocar para o modelo proposto com estes valores, a não ser que o modelo proposto me consiga oferecer um valor de 0.10$/1000 e-mails; e mesmo assim, teria de encontrar uma solução para alojar os GB de informação dos e-mails enquanto a fila não for processada, e se assumir que tenho mais e-mails para enviar do que aqueles que são processados, o espaço ocupado vai consumir o meu orçamento. Para uma empresa em que este volume de e-mail é um extra para o cliente e que ele não paga, porque os custos são baixos e a empresa assume, não vejo no modelo proposto uma vantagem.

    Como gestor de uma rede empresarial com muito e-mail e muito SPAM, a realidade é que os meus utilizadores não dão pelo SPAM, logo não têm qualquer motivação para mudar. Tenho problemas com filtros que bloqueiam ficheiros legítimos sem avisar, e clientes cujos filtros automáticos bloqueiam as nossas mensagens, em alguns casos já tenho destinatários em lista de não envio (ex.: xyz@portugalmail.pt), aí tenho de lidar com clientes que se queixam de não receber a informação e de os dirigir aos seus fornecedores de serviço de e-mail, mas não tenho, há bastante tempo, de lidar com problemas de SPAM a ser enviado as contas da empresa. Isto reduz a percepção de perigo (tal como é referido no relatório da CISCO) e é um problema (utilizadores menos informados/preocupados) mas dificulta a "venda" de uma solução à administração que apenas parece aumentar os custos e vem resolver um problema que "eles não têm".

    O SPAM é um problema, e os custos são elevados, é verdade; também é compreensível suspeitar de grupos com interesse em manter o estado actual ou até piorar, mas a verdade é que as soluções actuais oferecem um compromisso que compensa mais que a alternativa proposta.

    Ponho de parte o meu desdém por "ideias patenteadas" (acho que uma patente nunca devia ser dada a uma ideia sem que quem a teve tivesse também o trabalho da implementar), e por modelos de software fechado, e o facto da proposta incluir várias ideias que não são novas para mim (ouvi ideias semelhantes em conferências envolvendo SPAM e segurança de informação), mas no seu molde actual, o modelo parece incompleto.

    No entanto, se forem abordadas as questões mencionadas e encontradas soluções que possam trazer uma vantagens às empresas que, de boa fé, lidam com muito e-mail, o modelo teria mais hipótese de deslocar as soluções actuais. Espero que seja esse o caminho e boa sorte para a evolução da ideia.

    Só uma nota, achei curioso o uso da Wikipédia como referência; eu sugiro sempre como base para início de estudo mas como referência fiável deixa alguma coisa a desejar, ver isso numa aplicação de patente é inesperado; talvez seja a minha falta de experiência a ler propostas para patentes :)

    /Knitter

    • 50 respostas

    Re: Proteger e-mail de crawler bot's

    redinpais
    Por redinpais,
    Em 23/03/2017 às 14:29, Warrior disse:

    O facto do spam existir não prova a existência de lobbying, isso é uma falácia argumentativa.

    Então de que maneira se explica? Alguma coisa está a falhar...

    Em 23/03/2017 às 20:50, pwseo disse:

    Além do referido, saliento que hoje em dia os filtros contra spam são bastante bons, e de facto vejo cada vez mais pessoas (leigos) a queixarem-se de falsos positivos do que do inverso, no que toca a spam.

    Pois... Deve ser por isto que continua a mesma cena de sempre. Ainda hoje saiu este artigo e não sou eu que o estou a inventar. https://www.futurebehind.com/relatorio-seguranca-cisco-spam/
    é de referir a seguinte questão que se coloca no texto: "Se os utilizadores já estão mais consciencializados para os perigos do spam, se os filtros tecnológicos ficaram cada vez mais apurados, como se explica este regresso indesejado?"

    21 horas atrás, Rui Carlos disse:

    Pelo que vi da patente, colocas demasiadas dificuldades a quem quer enviar email a partir de fora, o que vai levar os utilizadores a ter que manter emails alternativos (mantendo os custos actuais) para continuarem a receber emails "automáticos", e contactar com utilizadores que não se vão dar ao trabalho de criar e gerir uma conta para poder enviar email para o vosso sistema.

    Dá a ideia que o sistema teria uma gestão centralizada (caso contrário precisarias de uma conta extra para cada domínio para o qual querias enviar email?), o que leva o serviço ainda mais para o nível do hangouts, whatsapp, skype e afins, como o @Warrior referiu (onde o spam já é bem controlado).

    Dos três cenários possíveis para o qual este modelo está preparado para responder, apenas o que diz respeito ao controlo de mensagens no sentido "tradicional para P2T" (serviços na cloud) é que poderá ser usada uma gestão centralizada. Compreende-se assim a necessidade de dificultar os benefícios a quem envia email de fora. De outra forma, não valeria a pena incentivá~los para serem clientes de um ISP que distribua serviços de email através de um servidor P2T.

    ---

    Fico sensível aos vossos "avisos" relacionados com a carga e picos de esforço, mas tal como a patente é um modelo teórico, também os receios que vocês relatam só passam a fazer sentido após os testes a efetuar num modelo funcional minimo. Prefiro aguardar essa possibilidade na vez de desistir só porque se diz que sim.
    O mundo está cheio de exemplos de grandes feitos que foram recusados e mal vistos.

    http://image-store.slidesharecdn.com/d90faa39-371f-4110-85e2-36e936168bd8-original.jpeg

    • 50 respostas

    Re: Como tornar uma div em link e fazer aparecer um botão e simultaneamente alterar o gadiente da imagem em background

    Joaquim Velez
    Por Joaquim Velez,

    É isso mesmo Jake, obrigadão!

    • 2 respostas

    Re: PHC - Programação em XBASE

    pc.cesar
    Por pc.cesar,

    Falta as plicas no plafond

     

     

    If u_sqlexec(cSqlUpdate) 

    Else

    MessageBox("Errou: O plafond não foi actualizado")

    EndIf

    • 89 respostas

    Como criptografar vários arquivos no linux usando os módulos AES e glob no python 2.7?

    Ford.B
    Por Ford.B,

    Segue o código...

     

    import os, random
    from Crypto.Cipher import AES
    import glob
    
    def encrypt(filename):
    	chunksize = 64 * 1024
    	output_file = "(encrypted)" + filename
    	filesize = str(os.path.getsize(filename)).zfill(16)
    	#key = "{: <32}".format(filename).encode("utf-8")
    	IV = ""
    
    	for i in range(16):
    		IV += chr(random.randint(0, 0xFF))
    
    	encryptor = AES.new(AES.MODE_CBC, IV)
    
    	with open(filename, "rb") as infile:
    		with open(output_file, "wb") as outfile:
    			outfile.write(filesize)
    			outfile.write(IV)
    
    			while True:
    				chunk = infile.read(chunksize)
    
    				if len(chunk) == 0:
    					break
    				elif len(chunk) % 16 != 0:
    					chunk += " " * (16 - (len(chunk) % 16))
    
    				outfile.write(encryptor.encrypt(chunk))
    
    os.chdir('/home/usuario/Documentos/Teste')
    for f in glob.glob('*'):
    	encrypt(f)

     

    O error que aparece:

    TypeError: argument 1 must be string or read-only buffer, not int

     

    • 0 respostas

    Re: Mafra LAN Party 2017

    PTGAMERLAN
    Por PTGAMERLAN,

    Atualização de última hora nos prémios de CS:GO:

    1.º Lugar - Cartão FNAC no valor de 500€ + 1 x 5 Rato GMX4 Modecom (oferta da Modecom)
    2.º Lugar - Cartão FNAC no valor de 300€ + 1 x 5 Fones Gaming Ranger (oferta da Modecom)
    3.º Lugar - Cartão FNAC no valor de 200€ + 1 x 5 Tapete Gaming Elbrus (oferta da Modecom)
    TAPETE GAMING ELBRUS

    • 2 respostas

    Re: PHC - Programação em XBASE

    itallo122
    Por itallo122,

    Olá boa tarde,

    Estou com um pequeno problema numa parte do meu programa e queria uma ajudinha.

    O que eu pretendo fazer nestas linhas de código é actualizar o plafond do fornecedor na tabela FL com um dos dados do cursor CrsPlafond.

    cSqlUpdate = ""
    cSqlUpdate = " UPDATE FL SET FL.PLAFOND = " + astr(CrsPlafond.PLAFOND) + " WHERE FL.NO = 200028 "
    u_sqlexec(cSqlUpdate,"CrsActualizaPlafond")
    
    If !u_sqlexec(cSqlUpdate)
    	MessageBox("Errou: O plafond não foi actualizado")
    EndIf

    O problema é que a mensagem aparece e não actualiza.

    PS: Sou novo no PHC 

    Obrigado !

    • 89 respostas

    Richtext com fundo transparente

    jbscoelho
    Por jbscoelho,

    Olá Pessoal,

    Tenho um problema com uma caixa de texto richtext, a qual necessito de gravar para imagem e depois de procurar na web encontrei o código para isso, mas...

    Preciso de conseguir gravar ("impirmir") o conteúdo sem que este fique em branco ou com a cor de fundo que esteja atribuída..

    Eis  código que estou a usar:

    public class RichTextBoxEx : RichTextBox
    {
        [StructLayout(LayoutKind.Sequential)]
        private struct STRUCT_RECT
        {
            public Int32 left;
            public Int32 top;
            public Int32 right;
            public Int32 bottom;
        }
    
        [StructLayout(LayoutKind.Sequential)]
        private struct STRUCT_CHARRANGE
        {
            public Int32 cpMin;
            public Int32 cpMax;
        }
    
        [StructLayout(LayoutKind.Sequential)]
        private struct STRUCT_FORMATRANGE
        {
            public IntPtr hdc;
            public IntPtr hdcTarget;
            public STRUCT_RECT rc;
            public STRUCT_RECT rcPage;
            public STRUCT_CHARRANGE chrg;
        }
    
        [DllImport("user32.dll")]
        private static extern Int32 SendMessage(IntPtr hWnd, Int32 msg, Int32 wParam, IntPtr lParam);
    
        private const Int32 WM_USER = 0x400;
        private const Int32 EM_FORMATRANGE = WM_USER + 57;
        private const Int32 EM_GETCHARFORMAT = WM_USER + 58;
        private const Int32 EM_SETCHARFORMAT = WM_USER + 68;
    
        /// <summary>
        /// Calculate or render the contents of our RichTextBox for printing
        /// </summary>
        /// <param name="measureOnly">If true, only the calculation is performed, otherwise the text is rendered as well</param>
        /// <param name="e">The PrintPageEventArgs object from the PrintPage event</param>
        /// <param name="charFrom">Index of first character to be printed</param>
        /// <param name="charTo">Index of last character to be printed</param>
        /// <returns> (Index of last character that fitted on the page) + 1</returns>
        public int FormatRange(bool measureOnly, PrintPageEventArgs e, int charFrom, int charTo)
        {
            // Specify which characters to print
            STRUCT_CHARRANGE cr = default(STRUCT_CHARRANGE);
            cr.cpMin = charFrom;
            cr.cpMax = charTo;
    
            // Specify the area inside page margins
            STRUCT_RECT rc = default(STRUCT_RECT);
            rc.top = HundredthInchToTwips(e.MarginBounds.Top);
            rc.bottom = HundredthInchToTwips(e.MarginBounds.Bottom);
            rc.left = HundredthInchToTwips(e.MarginBounds.Left);
            rc.right = HundredthInchToTwips(e.MarginBounds.Right);
    
            // Specify the page area
            STRUCT_RECT rcPage = default(STRUCT_RECT);
            rcPage.top = HundredthInchToTwips(e.PageBounds.Top);
            rcPage.bottom = HundredthInchToTwips(e.PageBounds.Bottom);
            rcPage.left = HundredthInchToTwips(e.PageBounds.Left);
            rcPage.right = HundredthInchToTwips(e.PageBounds.Right);
    
            // Get device context of output device
            IntPtr hdc = default(IntPtr);
            hdc = e.Graphics.GetHdc();
    
            // Fill in the FORMATRANGE structure
            STRUCT_FORMATRANGE fr = default(STRUCT_FORMATRANGE);
            fr.chrg = cr;
            fr.hdc = hdc;
            fr.hdcTarget = hdc;
            fr.rc = rc;
            fr.rcPage = rcPage;
    
            // Non-Zero wParam means render, Zero means measure
            Int32 wParam = default(Int32);
            if (measureOnly)
            {
                wParam = 0;
            }
            else
            {
                wParam = 1;
            }
    
            // Allocate memory for the FORMATRANGE struct and
            // copy the contents of our struct to this memory
            IntPtr lParam = default(IntPtr);
            lParam = Marshal.AllocCoTaskMem(Marshal.SizeOf(fr));
            Marshal.StructureToPtr(fr, lParam, false);
    
            // Send the actual Win32 message
            int res = 0;
            res = SendMessage(Handle, EM_FORMATRANGE, wParam, lParam);
    
            // Free allocated memory
            Marshal.FreeCoTaskMem(lParam);
    
            // and release the device context
            e.Graphics.ReleaseHdc(hdc);
    
            return res;
        }
    
        /// <summary>
        /// Convert between 1/100 inch (unit used by the .NET framework)
        /// and twips (1/1440 inch, used by Win32 API calls)
        /// </summary>
        /// <param name="n">Value in 1/100 inch</param>
        /// <returns>Value in twips</returns>
        private Int32 HundredthInchToTwips(int n)
        {
            return Convert.ToInt32(n * 14.4);
        }
    
        /// <summary>
        /// Free cached data from rich edit control after printing
        /// </summary>
        public void FormatRangeDone()
        {
            IntPtr lParam = new IntPtr(0);
            SendMessage(Handle, EM_FORMATRANGE, 0, lParam);
        }
    }
    

    Alguém tem alguma ideia?

    Obrigado.

     

    • 0 respostas

    Re: [Resolvido] Criação POPUP

    Anabela
    Por Anabela,

    Obrigada a todos pela vossa disponibilidade e comentários, está resolvido! :thumbsup:

    • 3 respostas

    OS X and Windows targeted by malware in Word

    apocsantos
    Por apocsantos,

    Researchers from FortiGuard Labs, part of Fortinet, have captured malware that infects both Windows and Apple OS X. The malware is distributed inside an infected Microsoft Word file. The malware asks the users to enable the Macro security option. From there it executes different code depending on which platform it is running.

    [Continua...]

    In Enterprise Times

    • 0 respostas

    Re: SAFT-PT: debate de dúvidas e ideias

    paulo brito
    Por paulo brito,

    Provavelmente acaba o 1.02 mas mantém o 1.03 pelo menos até ao fim do ano.

    • 5064 respostas

    Re: SAFT-PT: debate de dúvidas e ideias

    PeterBaga
    Por PeterBaga,

    Bom dia a Todos..

    Gostaria de pedir a v/opinião sobre o seguinte :

    A avaliar pela atitude da AT, atualmente é possível submeter SAFT na versão 1.02 e 1.03.

    A partir da entrada em vigor do SAFT 1.04 qual será o panorama de aceitação!?

    Obrigado e Bom FS.

    Pedro

     

    • 5064 respostas

    Re: Como tornar uma div em link e fazer aparecer um botão e simultaneamente alterar o gadiente da imagem em background

    JakeBass
    Por JakeBass,

    tipo isto? 

     

    • 2 respostas

    Re: Base de Dados Access para Oficina

    Knitter
    Por Knitter,

    Se ajudar a ter uma base,  embora seja numa vertente diferente, podes ver o que tinha para um projecto de gestão de oficinas de automóveis em https://github.com/Knitter/jautoinvoice/blob/master/documents/database/structure.mysql.sql

    O projecto não tem implementação que ajude, mas a estrutura da BD será semelhante (Não terá fornecedores nem tabelas de IVA nem coisas referentes a pagamentos e notificações).

    • 2 respostas

    Re: Modelo ER (Requesitar Equipamento)

    ppshaman
    Por ppshaman,

    Estive aqui a dar uma vista de olhos e só me ocorre estes. Ainda não tive muito tempo e amanhã vou dedicar-me a isto. Hoje perdi muito tempo com mockups.

     

    Vou ter uma entidade "Dispositivos" e preciso:

    Nome, Tipo de dispositivo, Modelo, O.s, Username, Password, Notas, estado (reservado ou não reservado),...

    Vou ter uma entidade "Defeitos" e preciso:

    titulo, descrição, data , utilizador que criou

    Vou ter outra entidade "Utilizadores" e preciso

    Nome, Tipo, Função, Imagem, email, ...

    Vou precisar que na entidade "Reserva" tenha

    Dia Inicio, Dia Fim, Hora Inicio e Hora Fim,data da reserva, Utilizador que reservou, Dispositivo reservado,...

     

    Basicamente será isto. Não sei ainda como vou fazer o ER mas amanhã já começo a construir. A reserva vai ser feita numa API interna da empresa. 

     

    Alguma sugestão a acrescentar para amanhã (hoje ainda hehehe) pegar nisto.

     

    Cumprimentos

     

     

     

    • 3 respostas

    Re: Proteger e-mail de crawler bot's

    Rui Carlos
    Por Rui Carlos,
    Em 22/03/2017 às 11:54, redinpais disse:

    Sejamos realistas. Se eu para saber que vale a pena ou não abrir ou apagar uma mensagem, tiver que a abrir primeiro, perde-se o interesse em proteger o destinatário. O "mal" já está feito e o trabalho do spammer ficará aliviado. Voltaríamos à estaca zero.

    Mais importante do que ficares com a duvida de saberes quando abrir ou eliminar uma mensagem é o facto de que o potencial spammer fica a saber que ao aderir a um sistema P2T vai ter de ser ele agora a lidar com correio que não foi desejado. Se eu for uma empresa que deseje manter uma reputação forte, qualquer mensagem enviada pelo sistema P2T, permite criar uma sensação de credibilidade e de interesse, levando a que com grande probabilidade deixe de ter mensagens bloqueadas para envio. Ao passo que um spammer alem de correr riscos de traking facilitado, tem de ponderar o tipo de mensagens que envia sob pena de ter de perder tempo na sua gestão.

    Aquilo que estava a discutir no texto que originou esta resposta era sobre o problema de eliminar mensagens que o utilizador não quer ler (como é que o servidor remetente sabe quando eliminar, particularmente se forem mensagens legítimas mas que o utilizador não leu), e como resolver o problema de privacidade.  Depois de ler a patente, fica a ideia que a abordagem tem todo o potencial para criar "mail leaks" (mails que ninguém quer ler, mas quem armazena o email não sabe disso).

    Quanto ao spammer ter que gerir as mensagens, a consequência óbvia, como já foi referido, seria o spam passar para os assuntos (coisa para a qual já disseste ter solução, mas que eu ainda não percebi qual era, nem depois de ver a patente, a menos que queiras impor mecanismos de validação de identidade que resultem num novo ViaCTT que ninguém usa).

    Citação

    Sobre um sistema de larga escala.
    Um modelo baseado em paginas web, percebe-se bem o interesse em aliviar essa carga. É do interesse deles que o façam, mas o utilizador final que as recebe nos seus browsers não se queixa disso, porque só vai ver essas páginas no momento em que o deseja. O ónus fica do lado do dono do website e é justo que assim o seja.

    Mas no caso do email já se passa ao contrário. É o utilizador que é bombardeado com tráfego sem o ter pedido para tal.

    A referência aos websites veio a propósito do "instantâneo", e do facto de passar a gestão para quem envia ter vários tradeoffs para quem recebe (o ponto da privacidade para mim é suficiente para preferir o modelo actual).

    Mas relativamente a quem deve ter o ónus depende do email.  No spam é óbvio que é o remetente.  Num serviço de notificações em que é o utilizador que quer receber o email, por exemplo, o interesse é do destinatário.  Quando um professor envia material didáctico ou avisos aos alunos, o interesse é do destinatário.  Quando alguém dá uma resposta a a outra pessoa por email, o interesse é dos destinatário.  Há muitos outros exemplos em que o destinatário é quem tem mais interesse no email, e como tal devia ser ele a gerir a maior parte dos custos com a sua gestão.

    Citação

    A carga e cotas de cliente estão sempre maioritariamente do lado do destinatário. Com o modelo P2T este problema será transferido para o remetente. Este balanceamento será posteriormente aliviado pela inexistência de tráfego inútil a circular na rede. É insustentável que seja o destinatário a pagar a factura tal como o documento que te indiquei num post anterior sobre os custos do spam.

    A carga e quotas também estão no remetente (até diria que estão maioritariamente no remetente).  Tens organizações com newsletters (legítimas) com milhares (ou até milhões) de destinatários. Há sites com milhares de notificações enviadas por dia.  Há mailing lists com milhares de emails trocados por dia (enviados a partir de um mesmo servidor). É mais comum um utilizador querer enviar uns milhares/milhões de emails "de uma vez" (ou que seja num dia) do que um destinatário receber uma carga semelhante de emails.

    O único custo que o destinatário veria reduzido é o do tráfego e algum armazenamento.  Tenho dúvidas que isto seja um problema tendo em conta os padrões de utilização da net hoje em dia, com serviços de streaming cada vez mais populares, utilização de imagens e vídeos quando texto era suficiente, etc. (i.e. desperdícios de tráfego por todo o lado).  Adicionalmente os ganhos de armazenamento parece-me reduzidos, mas dependeria do utilizador.

    Em contrapartida teria custos em termos de privacidade, comodidade, e do aumento da complexidade da infraestrutura de envio.  E da mesma forma que se pode dizer que é o destinatário que paga o spam (armazenamento, tráfego, sistema de filtragem, etc.) mesmo num serviço de email gratuito, também se pode dizer que será o destinatário a acabar por suportar o aumento de custos de envio de email (por exemplo, através do aumento da publicidade em newsletters que o utilizador quer ler).

    9 horas atrás, redinpais disse:

    Sim, vai.
    Que tipo de interesse tens em entrar em detalhes? Apenas por mera curiosidade ou para um provável interesse técnico no seu desenvolvimento?

    Se for meramente por curiosidade, podes consultar a minha patente em http://www.marcasepatentes.pt/files/collections/pt_PT/49/55/533/569/2015-11-20.pdf
    página 98 tem lá o link para fazeres o download.

    Pelo que vi da patente, colocas demasiadas dificuldades a quem quer enviar email a partir de fora, o que vai levar os utilizadores a ter que manter emails alternativos (mantendo os custos actuais) para continuarem a receber emails "automáticos", e contactar com utilizadores que não se vão dar ao trabalho de criar e gerir uma conta para poder enviar email para o vosso sistema.

    Dá a ideia que o sistema teria uma gestão centralizada (caso contrário precisarias de uma conta extra para cada domínio para o qual querias enviar email?), o que leva o serviço ainda mais para o nível do hangouts, whatsapp, skype e afins, como o @Warrior referiu (onde o spam já é bem controlado).

    • 50 respostas

    Duvida sobre FileChooser

    InformaticoTuga
    Por InformaticoTuga,
    JButton btnUpload = new JButton("");
            btnUpload.setIcon(new ImageIcon(Form_Cliente.class.getResource("/icones/Icones90x40/Procurar2.png")));
            btnUpload.addActionListener(new ActionListener() {
    
                public void actionPerformed(ActionEvent e) {
                    
                    
                    
                    //JFileChooser FileChooser = new JFileChooser("C:/Users/SergioP/workspace/gtr/src/Imagens/clientes/");
                    String dirInicio = (System.getProperty("user.dir") + "/src/Imagens/clientes/");
                    System.out.println(dirInicio);
                    JFileChooser FileChooser = new JFileChooser(dirInicio);
                    FileNameExtensionFilter filter1 = new FileNameExtensionFilter("PNG","png"); 
                    FileNameExtensionFilter filter2 = new FileNameExtensionFilter("GIF", "gif"); 
                    FileNameExtensionFilter filter3 = new FileNameExtensionFilter("JPG", "jpg");
    
                    FileChooser.addChoosableFileFilter(filter1);
                    FileChooser.addChoosableFileFilter(filter2);
                    FileChooser.addChoosableFileFilter(filter3);
                    
                    int returnValue = FileChooser.showOpenDialog(null);
                    if (returnValue == JFileChooser.APPROVE_OPTION){
                        selectedFile = FileChooser.getSelectedFile();
                        
                        String fileName = selectedFile.getName();          
                        String fileExtension = fileName.substring(fileName.indexOf(".") + 1, selectedFile.getName().length());
                        System.out.println("File Extension: " + fileExtension);
                        if (!fileExtension.equals("png") && !fileExtension.equals("gif") && !fileExtension.equals("jpg")) {
                            
                            JOptionPane.showMessageDialog(null, "Erro ao Carregar Imagem!!\n" + "Formato não Suportado!!");
                            dispose();
                            new Form_Cliente("").setVisible(true);
                            
                        }else{
                        filePath = selectedFile.getAbsolutePath();
                        InputStream inStream = null;
                        OutputStream outStream = null;
                        try{
                            File source =new File(filePath);
                            File dest =new File(System.getProperty("user.dir") + "/src/Imagens/clientes/" + selectedFile.getName());
                            System.out.println(dest);
                          
                            inStream = new FileInputStream(source);
                            outStream = new FileOutputStream(dest);
                            
                            byte[] buffer = new byte[1024];
                            /*if(dest.delete()){
                                System.out.println(dest.getName() + " Was deleted!");
                            }else{
                                System.out.println("Delete Operation Failed. Check: " + dest);
                            }*/
                            int length;
                            while ((length = inStream.read(buffer)) > 0){
                                outStream.write(buffer, 0, length);
                            }
                            System.out.println(Foto.getText() + "-<"+fileName);
                         
                            JOptionPane.showMessageDialog(null, "A carregar...");
                            Thread.sleep(1000);
                            
                                
                            RedimencionaImagemLabel(Foto, "clientes",fileName,90,90);
                            if (inStream != null)inStream.close();
                            if (outStream != null)outStream.close();
                            System.out.println("File Copied..");
                            JOptionPane.showMessageDialog(null, "Imagem Carregada com Sucesso!!\n" + "Imagem Carregada: " + selectedFile.getName());
                            
                            
                        }catch(IOException e1){
                            e1.printStackTrace();
                        } catch (InterruptedException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                    
                    }}
                    
            
            }});
            btnUpload.setFocusPainted(false);
            btnUpload.setBorder(null);
            btnUpload.setBackground((Color) null);
            btnUpload.setBounds(358, 122, 96, 34);
            Informacao.add(btnUpload);
    

    Boa noite, eu estou a usar o filechooser num aplicativo que estou a desenvolver e o código acima funciona quando selecciono a imagem de uma outra pasta que não a clientes.

    Mas quando selecciono uma imagem da pasta clientes, esta fica vazia e ilegível, eu penso que seja por este estar a escrever a imagem uma por cima da outra quando copia esta.

    Visto que sou um novato no Java decidi de perdi ajudar aqui do pessoal mais especializado no assunto, se me puderem ajudar agradecia, Obrigado pelo vosso tempo.

    • 0 respostas

    Re: SAFT-PT: debate de dúvidas e ideias

    marcolopes
    Por marcolopes,
    2 hours ago, nunopicado said:

    Eu não... :P

    Agora a sério, não encontraste maneira do XMLBeans (ou outro qualquer) lidar com o 1.1?

     

    Não... como já tinha dito, nem a versão mais recente do ECLIPSE IDE suporta a versão XSD 1.1

    • 5064 respostas

    Re: Base de Dados Access para Oficina

    apocsantos
    Por apocsantos,

    Boa noite,

    Ora deixa cá ver...

    Tabela Cliente com os dados dos clientes; Tabela Viaturas, com as matriculas, marca, modelo, ano, cor, ultima-ipo, ultima-revisão, kms, etc... uma tabela intermédia (clientes-matriculas) para criar a relação entre Cliente e Viaturas, em que um Cliente pode ter N viaturas.

    Uma tabela de peças, para poderes associar as peças às reparações, uma tabela reparações onde registas as reparações e a lista continua!

    Primeiro tens de saber o que queres armazenar, depois é só criar tabelas... Isso é algo simples de fazer!

    Cordiais cumprimentos,

    Apocsantos

    • 2 respostas

  1. Ver Mais Actividade
Portal by DevFuse · Based on IP.Board Portal by IPS