Enviar e-mail com imagem de assinatura

8 respostas
C

Galéra consegui enviar e-mail através da classe sendmail usando image e enviando arquivo em anexo
porem não estou conseguindo alinhar a imagem tanto para esquerda ou para direira segue codigo baixo:

public class SendMail {

private String smtp;
private String usr;
private  String pass;
private String from;

private String replyTo;
private String cc;
private String bcc;

private String arquivo;

public static int SEND_HTML = 1;
public static int SEND_TEXT = 2;

public SendMail( String from, String smtp, String usr, String pass, String arquivo ){
	
	
	
	this.smtp = smtp;
	this.usr = usr;
	this.pass = pass;
	this.from = from;
	this.arquivo = arquivo;
	
}

public SendMail(){}
	
public void send( String to, String subject, String msg ) throws Exception{
		
	
	//System.out.println( to );
	//System.out.println( msg );
	
	Properties props = System.getProperties();
	
	//Aqui intancia a sua classe
	Authenticator auth = new SMTPAuthenticator();
	
	// Setup mail server
	props.put("mail.smtp.host", getSmtp() );
	
	// getInstance para enviar e-mail por varios origens 
	Session session = Session.getInstance(props, auth);

	
	//getDefaultInstance session para uma unica origem - uma conta estatica
	//Session session = Session.getDefaultInstance(props, auth);
	
	props.put("mail.smtp.auth", "true");
	
	// Set Default Charset
	props.put("mail.mime.charset", "ISO-8859-1");

    // contruindo o mensagem
    Message body = new MimeMessage(session);

    body.setFrom(new InternetAddress( getFrom() ) );
    
    body.setContent( msg , "text/html");

    body.setRecipients( Message.RecipientType.TO, InternetAddress.parse( to , false) );
    body.setReplyTo( InternetAddress.parse( getReplyTo() , false) );
   
    if ( getCc() != null )
    	body.setRecipients(Message.RecipientType.CC, InternetAddress.parse(getCc(), false));
    if ( getBcc() != null) 
    	body.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(getBcc(), false));

    body.setSubject( subject );

    collect( msg, body );

    //body.setHeader( "X-Mailer", "JavaMail API" );
    body.setSentDate( new Date() );

    // Criando a primeira parte da messagem 
    MimeBodyPart messageBodyPart = new MimeBodyPart();

    messageBodyPart.setContent( msg , "text/html");

    MimeMultipart multipart = new MimeMultipart();  
    
    multipart.addBodyPart(messageBodyPart);
    
  
    
    //
    MimeMultipart multipart1 = new MimeMultipart("related");  
    
       String html = ""; 
       BodyPart mainPart = new MimeBodyPart();  
       mainPart.setContent(html, "text/html"); //Adiciona conteúdo HTML
       multipart1.addBodyPart(mainPart);  
     
       BodyPart imagePart = new MimeBodyPart();  
       DataSource imgFds  = new FileDataSource(Uteis.getTempPath() + "/" + "assinatura.jpg");
       imagePart.setDataHandler( new DataHandler(imgFds) );  
     
       imagePart.setHeader("Content-ID", "<img>"); //Adiciona a imagem do logo, seta o id como image  
       multipart.addBodyPart(imagePart); 
       
       

   // Criando a segunda parte da messagem com o anexo 
    messageBodyPart = new MimeBodyPart();
    DataSource source = new FileDataSource(Uteis.getTempPath() + "/" + arquivo);
    messageBodyPart.setDataHandler(new DataHandler(source));
    

    messageBodyPart.setFileName(arquivo);
    multipart.addBodyPart(messageBodyPart);

    


    // Unindo a primeira parte com a segunda parte
    body.setContent(multipart);
    
    
    // Enviando o mensagem  - send the thing off
    Transport.send( body );
 
    	    
}

public void collect( String msg, Message body ) throws MessagingException, IOException {
	
	body.setDataHandler(new DataHandler(

	new ByteArrayDataSource( msg , "text/html")));

}

public String getFrom() {
	return from;
}

public String getPass() {
	return pass;
}

public String getReplyTo() {
	return replyTo;
}

public String getSmtp() {
	return smtp;
}

public String getUsr() {
	return usr;
}

public void setFrom(String from) {
	this.from = from;
}

public void setPass(String pass) {
	this.pass = pass;
}

public void setReplyTo(String replyTo) {
	this.replyTo = replyTo;
}

public void setSmtp(String smtp) {
	this.smtp = smtp;
}

public void setUsr(String usr) {
	this.usr = usr;
}

public class SMTPAuthenticator extends Authenticator{

	public PasswordAuthentication getPasswordAuthentication(){

		 return new PasswordAuthentication( usr , pass );

	}

}

public String getCc() {
	return cc;
}

public void setCc(String cc) {
	this.cc = cc;
}

public String getBcc() {
	return bcc;
}

public void setBcc(String bcc) {
	this.bcc = bcc;
}

}

8 Respostas

R

Cara, coloca seu código entre as tags code para melhor visualização dele.

Obrigado.

R
BodyPart imagePart = new MimeBodyPart();
DataSource imgFds = new FileDataSource(Uteis.getTempPath() + "/" + "assinatura.jpg");
imagePart.setDataHandler( new DataHandler(imgFds) );

Nesse trecho, tenta assim:

String fileToSend = diretorio\\assinatura.jpg;

            MimeBodyPart attachFilePart = new MimeBodyPart();
            FileDataSource fds = new FileDataSource(fileToSend);
            attachFilePart.setDataHandler(new DataHandler(fds));
            attachFilePart.setFileName(fds.getName());
C
romarcio:
BodyPart imagePart = new MimeBodyPart();
DataSource imgFds = new FileDataSource(Uteis.getTempPath() + "/" + "assinatura.jpg");
imagePart.setDataHandler( new DataHandler(imgFds) );

Nesse trecho, tenta assim:

String fileToSend = diretorio\\assinatura.jpg;

            MimeBodyPart attachFilePart = new MimeBodyPart();
            FileDataSource fds = new FileDataSource(fileToSend);
            attachFilePart.setDataHandler(new DataHandler(fds));
            attachFilePart.setFileName(fds.getName());

cara tetei mas deu erro nas seguintes linha

imagePart.setHeader("Content-ID", ""); //Adiciona a imagem do logo, seta o id como image
multipart.addBodyPart(imagePart);

R

Coloca como vc adaptou esse trecho ao código que lhe passei

imagePart.setDataHandler( new DataHandler(imgFds) );
C

[quote=romarcio]Coloca como vc adaptou esse trecho ao código que lhe passei

imagePart.setDataHandler( new DataHandler(imgFds) );

blz codigo ficou assim

String fileToSend = Uteis.getTempPath() + "/" + "assinatura.jpg";
          
        MimeBodyPart imagePart = new MimeBodyPart();  
        FileDataSource imgFds = new FileDataSource(fileToSend);  
        imagePart.setDataHandler( new DataHandler(imgFds) );   
        imagePart.setFileName(imgFds.getName());  
       
        imagePart.setDataHandler( new DataHandler(imgFds) );  
        
        imagePart.setHeader("Content-ID", "<img >"); //Adiciona a imagem do logo, seta o id como image  
        multipart.addBodyPart(imagePart);

porem no html antes da assinatura ta passando um risco e nao estou conseguindo alinhar a figura pro lado esquerdo algum sugestão ?

R

Quando postar código, coloca entre as tags Code.

No local onde vc escreve a mensagem, na parte de cima tem um botão chado Code antes de inserir o código, clica nesse botão, quando terminar o código, clica de novo para fechar a tag.

Sobre a sua dúvida, se vc está criando email por HTML, então para alinhar talvez tenha que usar as propriedades referentes ao HTML para isso.

E sobre o risco, acho que isso acontece por ser um anexo, dai antes do anexo acho que sempre é impreso esse risco.

C

romarcio:
Quando postar código, coloca entre as tags Code.

No local onde vc escreve a mensagem, na parte de cima tem um botão chado Code antes de inserir o código, clica nesse botão, quando terminar o código, clica de novo para fechar a tag.

Sobre a sua dúvida, se vc está criando email por HTML, então para alinhar talvez tenha que usar as propriedades referentes ao HTML para isso.

E sobre o risco, acho que isso acontece por ser um anexo, dai antes do anexo acho que sempre é impreso esse risco.

valew pela dica do code so novato no forum

sobre e-mail

eu tenho um html que envio para os clientes com cabeçalho nome de empresa tel etc…certo
no final queria incluir a assinatura com a imagem blz!
consegui fazer tudo mas so estou com dificuldade de alinhar a figura
a classe junta os parametros q passo para html junta o anexo e junta a imagem no e-mail porem no html nao ponho nenhuma tag que possa controlar a imagem enteneu ?

R

Pois eh, dai não sei te dizer como alinhar a esquerda.

Eu uso uma classe que montei, foi dela que tirei aquele código que te passei, e sempre alinha a esquerda as imagens.

Mas não tem nada demais que tenha feito para isso.

Criado 16 de julho de 2010
Ultima resposta 16 de jul. de 2010
Respostas 8
Participantes 2