importjava.io.IOException;importjava.io.PrintStream;importjavax.mail.MessagingException;importsun.net.smtp.SmtpClient;publicclassemail{publicemail(){}publicbooleanenviar()throwsMessagingException{Stringto="[email removido]";Stringfrom="[email removido]";try{SmtpClientclient=newSmtpClient("mail.abilitytecnologia.com.br");//servidor smtpclient.from(from);client.to(to);PrintStreammsg=client.startMessage();msg.println("to:"+to);msg.println("from:"+from);msg.println("Subject:Exemplo de Envio de e - mail");msg.print("\r\n");msg.println("Testando de email http://gregui.wordpress.com");client.closeServer();}catch(IOExceptione){System.out.println(e.getMessage());returnfalse;}returntrue;}publicstaticvoidmain(Stringargs[])throwsMessagingException{emailmail=newemail();mail.enviar();}}
Esse que eu postei eu consegui adptar da forma que eu queria, só falta o anexo da imagem.
juliocesarss
Ahh agora entendi como funciona --’’
Seria assim neh
Stringhost="mail.abilitytecnologia.com.br";Stringfrom="[email removido]";Stringto="[email removido]";StringfileAttachment="C:/Documents and Settings/j.simoes/Desktop/print/print1.jpg";
Podia ter um comentario na frente dizendo o que colocar na varivel neh -.-
Mas tudo bem, de qualquer for não funcionou, só recebi o email, mas não veio nada escrito, nem assunto e nem o anexo =S
Code1:Call2methodpassingrequirementparameter:Obs:AlwaysContentType=application/octet-streamviewplaincopytoclipboardprint?ByteArrayInputStreamattachStream=newByteArrayInputStream((byte[])prt.getContent());//call constructor class:InputStreamDataSource InputStreamDataSourceisds=newInputStreamDataSource("Testepdf.pdf",prt.getContentType(),attachStream);//call method sendMail(InputStreamDataSource,host,from,to) sendMail(isds,s_Host,s_SendFrom,s_SendTo);Code2:ClassInputStreamDataSourceviewplaincopytoclipboardprint?// statement DataSource privateclassInputStreamDataSourceimplementsDataSource{privateStringname;privateStringcontentType;privateByteArrayOutputStreambaos;InputStreamDataSource(Stringname,StringcontentType,InputStreaminputStream)throwsIOException{intread;this.name=name;this.contentType=contentType;baos=newByteArrayOutputStream();byte[]buff=newbyte[256];while((read=inputStream.read(buff))!=-1){baos.write(buff,0,read);}}publicStringgetContentType(){// TODO Auto-generated method stub returncontentType;}publicInputStreamgetInputStream()throwsIOException{// TODO Auto-generated method stub returnnewByteArrayInputStream(baos.toByteArray());}publicStringgetName(){// TODO Auto-generated method stub returnname;}publicOutputStreamgetOutputStream()throwsIOException{// TODO Auto-generated method stub thrownewIOException("Cannot write to this read-only resource");}}Code3:mehodsendMail(InputStreamDataSource,host,from,to)viewplaincopytoclipboardprint?protectedvoidsendMail(InputStreamDataSourceattach,Stringhost,Stringfrom,Stringto){// create some properties and get the default Session Propertiesprops=System.getProperties();props.put("mail.smtp.host",host);Sessionsession=Session.getInstance(props,null);try{// create a message MimeMessagemsg=newMimeMessage(session);msg.setFrom(newInternetAddress(from));InternetAddress[]address={newInternetAddress(to)};msg.setRecipients(Message.RecipientType.TO,address);msg.setSubject("Assunto teste.");// create and fill the first message part MimeBodyPartbp1=newMimeBodyPart();bp1.setText("Texto teste.");// create the second message part MimeBodyPartbp2=newMimeBodyPart();// attach the file to the message bp2.setDataHandler(newDataHandler(attach));// getNameFile bp2.setFileName(attach.getName());// create the Multipart and add its parts to it Multipartmp=newMimeMultipart();mp.addBodyPart(bp1);mp.addBodyPart(bp2);// add the Multipart to the message msg.setContent(mp);// set the Date: header msg.setSentDate(newDate());// send the message Transport.send(msg);System.out.println("Email sent successfully!");}catch(MessagingExceptionmex){mex.printStackTrace();Exceptionex=null;if((ex=mex.getNextException())!=null){ex.printStackTrace();}}}
nel
juliocesarss:
Ahh agora entendi como funciona --’’
Seria assim neh
Stringhost="mail.abilitytecnologia.com.br";Stringfrom="[email removido]";Stringto="[email removido]";StringfileAttachment="C:/Documents and Settings/j.simoes/Desktop/print/print1.jpg";
Podia ter um comentario na frente dizendo o que colocar na varivel neh -.-
Mas tudo bem, de qualquer for não funcionou, só recebi o email, mas não veio nada escrito, nem assunto e nem o anexo =S
Queres tudo mastigado hein?
Se o seu código não funcionou porque não posta ele completo para que possamos analisar e dizer o que pode estar errado parceiro?
mateuscs
nel,
Concordo, posta seu codigo ae champz
;D
juliocesarss
Queres tudos mastigado? O código ta ali no link só fiz essas alterações que postei… Mas de qualquer jeito ta ae
importjava.util.Properties;importjavax.mail.*;importjavax.mail.internet.*;importjavax.activation.*;publicclassAttachExample{publicstaticvoidmain(Stringargs[])throwsException{Stringhost="mail.abilitytecnologia.com.br";Stringfrom="[email removido]";Stringto="[email removido]";StringfileAttachment="C:/Documents and Settings/j.simoes/Desktop/print/print1.jpg";// Get system propertiesPropertiesprops=System.getProperties();// Setup mail serverprops.put("mail.smtp.host",host);// Get sessionSessionsession=Session.getInstance(props,null);// Define messageMimeMessagemessage=newMimeMessage(session);message.setFrom(newInternetAddress(from));message.addRecipient(Message.RecipientType.TO,newInternetAddress(to));message.setSubject("Hello JavaMail Attachment");// create the message part MimeBodyPartmessageBodyPart=newMimeBodyPart();//fill messagemessageBodyPart.setText("Hi");Multipartmultipart=newMimeMultipart();multipart.addBodyPart(messageBodyPart);// Part two is attachmentmessageBodyPart=newMimeBodyPart();DataSourcesource=newFileDataSource(fileAttachment);messageBodyPart.setDataHandler(newDataHandler(source));messageBodyPart.setFileName(fileAttachment);multipart.addBodyPart(messageBodyPart);// Put parts in messagemessage.setContent(multipart);// Send the messageTransport.send(message);}}
nel
// Part two is attachment MimeBodyPartmessageBodyPartAtt=newMimeBodyPart();DataSourcesource=newFileDataSource(fileAttachment);messageBodyPartAtt.setDataHandler(newDataHandler(source));messageBodyPartAtt.setFileName(fileAttachment);multipart.addBodyPart(messageBodyPart);// Put parts in message message.setContent(multipart);
É bem possível que estivesse perdendo referência ao primeiro Body, já que tu criou uma nova referência a variavél.
E outro detalhe, tenta dar um:
Filefile=newFile("C:/Documents and Settings/j.simoes/Desktop/print/print1.jpg");FileInputStreamfis=newFileInputStream(file);
Veja se não vai gerar exceção porque esse "caminho" é bem estranho e não sei se funciona.
E por fim, gerou alguma exceção? Creio que não já que o e-mail foi recebido...mas..
mateuscs
Seta tamem sua mensagem com os seguintes parametros:
// Part two is attachment MimeBodyPartmessageBodyPartAtt=newMimeBodyPart();DataSourcesource=newFileDataSource(fileAttachment);messageBodyPartAtt.setDataHandler(newDataHandler(source));messageBodyPartAtt.setFileName(fileAttachment);multipart.addBodyPart(messageBodyPart);// Put parts in message message.setContent(multipart);
É bem possível que estivesse perdendo referência ao primeiro Body, já que tu criou uma nova referência a variavél.
E outro detalhe, tenta dar um:
Filefile=newFile("C:/Documents and Settings/j.simoes/Desktop/print/print1.jpg");FileInputStreamfis=newFileInputStream(file);
Veja se não vai gerar exceção porque esse "caminho" é bem estranho e não sei se funciona.
E por fim, gerou alguma exceção? Creio que não já que o e-mail foi recebido...mas..
=S
Estranhoo.. mas essa parte é só a do anexo, mas nem anexo e nem mensagem estão indo. Se bem que pra mim só importa que a imgem em anexo chegue.
Será que tem algum problema com o caminho? Não gerou nenhuma excessão não, e esse caminho funcionou certinho num código anterior, pois eu primeiro salvo a imagem nesse local para depois anexar e essa caminho funcionou corretamente para salvar.
nel
Você realizou as devidas alterações em seu código?
Se sim, poste o código alterado.
juliocesarss
nel:
Você realizou as devidas alterações em seu código?
Se sim, poste o código alterado.
-.-
Vc ta lendo o tópico direito?
Acabei de postar ali em cima…
olhaa… no link ta o código que você postou certo?
E esse que postei foi esse código com as minhas alterações, como email, servidor e tals…
Mas vamos la novamente …
importjava.util.Properties;importjavax.mail.*;importjavax.mail.internet.*;importjavax.activation.*;publicclassAttachExample{publicstaticvoidmain(Stringargs[])throwsException{//aqui que fiz as alteraçõesStringhost="mail.abilitytecnologia.com.br";Stringfrom="[email removido]";Stringto="[email removido]";StringfileAttachment="C:/Documents and Settings/j.simoes/Desktop/print/print1.jpg";// Get system propertiesPropertiesprops=System.getProperties();// Setup mail serverprops.put("mail.smtp.host",host);// Get sessionSessionsession=Session.getInstance(props,null);// Define messageMimeMessagemessage=newMimeMessage(session);message.setFrom(newInternetAddress(from));message.addRecipient(Message.RecipientType.TO,newInternetAddress(to));message.setSubject("Hello JavaMail Attachment");// create the message part MimeBodyPartmessageBodyPart=newMimeBodyPart();//fill messagemessageBodyPart.setText("Hi");Multipartmultipart=newMimeMultipart();multipart.addBodyPart(messageBodyPart);// Part two is attachmentmessageBodyPart=newMimeBodyPart();DataSourcesource=newFileDataSource(fileAttachment);messageBodyPart.setDataHandler(newDataHandler(source));messageBodyPart.setFileName(fileAttachment);multipart.addBodyPart(messageBodyPart);// Put parts in messagemessage.setContent(multipart);// Send the messageTransport.send(message);}}
Só pra lembrar…aonde fiz as alterações o código era assim
Se tiver mais alguma alteração que precise fazer me fale…
mateuscs
juliocesarss:
nel:
Você realizou as devidas alterações em seu código?
Se sim, poste o código alterado.
-.-
Vc ta lendo o tópico direito?
Acabei de postar ali em cima…
olhaa… no link ta o código que você postou certo?
E esse que postei foi esse código com as minhas alterações, como email, servidor e tals…
Mas vamos la novamente …
importjava.util.Properties;importjavax.mail.*;importjavax.mail.internet.*;importjavax.activation.*;publicclassAttachExample{publicstaticvoidmain(Stringargs[])throwsException{//aqui que fiz as alteraçõesStringhost="mail.abilitytecnologia.com.br";Stringfrom="[email removido]";Stringto="[email removido]";StringfileAttachment="C:/Documents and Settings/j.simoes/Desktop/print/print1.jpg";// Get system propertiesPropertiesprops=System.getProperties();// Setup mail serverprops.put("mail.smtp.host",host);// Get sessionSessionsession=Session.getInstance(props,null);// Define messageMimeMessagemessage=newMimeMessage(session);message.setFrom(newInternetAddress(from));message.addRecipient(Message.RecipientType.TO,newInternetAddress(to));message.setSubject("Hello JavaMail Attachment");// create the message part MimeBodyPartmessageBodyPart=newMimeBodyPart();//fill messagemessageBodyPart.setText("Hi");Multipartmultipart=newMimeMultipart();multipart.addBodyPart(messageBodyPart);// Part two is attachmentmessageBodyPart=newMimeBodyPart();DataSourcesource=newFileDataSource(fileAttachment);messageBodyPart.setDataHandler(newDataHandler(source));messageBodyPart.setFileName(fileAttachment);multipart.addBodyPart(messageBodyPart);// Put parts in messagemessage.setContent(multipart);// Send the messageTransport.send(message);}}
Só pra lembrar…aonde fiz as alterações o código era assim
Se tiver mais alguma alteração que precise fazer me fale…
Você não realizou nenhuma alteração que citei…
:?
nel
Não cara, é que eu não tenho mais o que fazer e estou aqui, é isso.
Nunca li o seu tópico, então aproveita e torce para outro vir e lhe dar a solução
Só um detalhe, eu já disse acima para modificar o seu código NOVAMENTE mas você não fez a mudança, seu código esta exatamente o mesmo.
Vou repetir, tem referência a objeto sendo sobrescrita ai e não está criando ela corretamente.
Mas eu sei que tu é um cara esperto e vai achar a solução.
Abraços.
mateuscs
nel:
Não cara, é que eu não tenho mais o que fazer e estou aqui, é isso.
Nunca li o seu tópico, então aproveita e torce para outro vir e lhe dar a solução
Só um detalhe, eu já disse acima para modificar o seu código NOVAMENTE mas você não fez a mudança, seu código esta exatamente o mesmo.
Vou repetir, tem referência a objeto sendo sobrescrita ai e não está criando ela corretamente.
Mas eu sei que tu é um cara esperto e vai achar a solução.
Abraços.
Concordo…
Reveja os conceitos que postamos.
nel
mateuscs:
juliocesarss:
nel:
Você realizou as devidas alterações em seu código?
Se sim, poste o código alterado.
-.-
Vc ta lendo o tópico direito?
Acabei de postar ali em cima…
olhaa… no link ta o código que você postou certo?
E esse que postei foi esse código com as minhas alterações, como email, servidor e tals…
Mas vamos la novamente …
importjava.util.Properties;importjavax.mail.*;importjavax.mail.internet.*;importjavax.activation.*;publicclassAttachExample{publicstaticvoidmain(Stringargs[])throwsException{//aqui que fiz as alteraçõesStringhost="mail.abilitytecnologia.com.br";Stringfrom="[email removido]";Stringto="[email removido]";StringfileAttachment="C:/Documents and Settings/j.simoes/Desktop/print/print1.jpg";// Get system propertiesPropertiesprops=System.getProperties();// Setup mail serverprops.put("mail.smtp.host",host);// Get sessionSessionsession=Session.getInstance(props,null);// Define messageMimeMessagemessage=newMimeMessage(session);message.setFrom(newInternetAddress(from));message.addRecipient(Message.RecipientType.TO,newInternetAddress(to));message.setSubject("Hello JavaMail Attachment");// create the message part MimeBodyPartmessageBodyPart=newMimeBodyPart();//fill messagemessageBodyPart.setText("Hi");Multipartmultipart=newMimeMultipart();multipart.addBodyPart(messageBodyPart);// Part two is attachmentmessageBodyPart=newMimeBodyPart();DataSourcesource=newFileDataSource(fileAttachment);messageBodyPart.setDataHandler(newDataHandler(source));messageBodyPart.setFileName(fileAttachment);multipart.addBodyPart(messageBodyPart);// Put parts in messagemessage.setContent(multipart);// Send the messageTransport.send(message);}}
Só pra lembrar…aonde fiz as alterações o código era assim
Se tiver mais alguma alteração que precise fazer me fale…
Você não realizou nenhuma alteração que citei…
:?
E ele tem coragem ainda de perguntar se não estou lendo o tópico…
juliocesarss
nel:
Não cara, é que eu não tenho mais o que fazer e estou aqui, é isso.
Nunca li o seu tópico, então aproveita e torce para outro vir e lhe dar a solução
Só um detalhe, eu já disse acima para modificar o seu código NOVAMENTE mas você não fez a mudança, seu código esta exatamente o mesmo.
Vou repetir, tem referência a objeto sendo sobrescrita ai e não está criando ela corretamente.
Mas eu sei que tu é um cara esperto e vai achar a solução.
Abraços.
Eu entendi o que você disse, porém não sei o que fazer ja que se eu tiro a parte que esta sobreescrevendo ele da erro e não vai, sei que pode ter um possivel problema ali mas não sei resolver.