You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Daxin Zuo <dz...@techexcel.com> on 2005/01/14 00:44:18 UTC

Authentication problem in Sending email from servlet. (tomcate 5)

Hi,
   In my web page, user sends email with attachment, so upload is related. I
load the file in a byte array, and try to send with JavaMail(I know there is
Mail api in Tomcat-Common. But I have no a good example).

 The related code is copied at the end.
 The email serve needs no user-name and password, because the C++ program
sends email without authentication.

 if I set prop.put("mail.smtp.auth", "false");
 Exception: SendEmail Error: javax.mail.AuthenticationFailedException

 If I set to Password and username to "", or set the user name to the
From-Email address:
SendEmail Error: com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0
Authentication required

Please tell me what's wrong. Thanks.

  import javax.mail.*;
  import javax.mail.internet.*;
  import javax.activation.*;
  import org.apache.commons.net.smtp.*;
  import org.apache.commons.net.io.Util;
  ....

  Properties prop = System.getProperties();
  prop.put("mail.smtp.host", szServer);
  prop.put("mail.smtp.from", strFrom);
  prop.put("mail.transport.protocol", "SMTP");
  final String user = tool.isnull2(szAccount)==""?
				 strFrom:                // From email Address
				 tool.isnull2(szAccount);// Account of the user.
  final String pwd = tool.isnull2(szPassword);
  Authenticator auth = null;

	prop.put("mail.smtp.auth", "true");
	auth = new Authenticator (){
	  public PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(user, pwd);
	  }
	};

  Session ses1=Session.getInstance(prop,auth);

  MimeMessage msg = new MimeMessage(ses1);
  msg.setFrom(new InternetAddress(strFrom));
  String[] Recipts = strRecipts.split(",");
  for( int k=0; k < Recipts.length; k++)
	msg.addRecipient(Message.RecipientType.TO,
                       new InternetAddress(Recipts[k]));
  if (!tool.isnull(strCcRecipts)){
	Recipts = strCcRecipts.split(",");
	for (int k = 0; k < Recipts.length; k++)
	  msg.addRecipient(Message.RecipientType.CC,
			 new InternetAddress(Recipts[k]));
  }

  msg.setSubject(strSubject);
  msg.setHeader("X-Mailer", "Java Mail");
  MimeBodyPart  messageBodyPart = new MimeBodyPart();
  messageBodyPart.setDisposition(Part.INLINE);
  messageBodyPart.setContent(strBodyText, "text/plain");
  MimeMultipart multipart = new MimeMultipart();
  multipart.addBodyPart(messageBodyPart);

  if (AttacheFileSize > 0) {  // one attache file only.
	messageBodyPart = new MimeBodyPart();
	messageBodyPart.setDataHandler(new DataHandler(
		 ByteArrayOfFile,     // byte[] it holds the file contents
		 myFileMimeType));    //String, mime type of the file
	messageBodyPart.setFileName(astrAttach);
	multipart.addBodyPart(messageBodyPart);
  }

  msg.setContent(multipart);
  msg.setSentDate(new Date());
  Transport.send(msg);


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


RE: Sending email with zip file attach problem

Posted by Daxin Zuo <dz...@techexcel.com>.
Thanks for the reply. So I have to output the file.
If, in jave, there is no way to upload the file and attach the file
directly, it seems strange.


-----Original Message-----
From: Caroline Jen [mailto:jiapei_jen@yahoo.com]
Sent: Monday, January 24, 2005 11:10 AM
To: Tomcat Users List
Subject: Re: Sending email with zip file attach problem


It is an example of sending bulk mails with
attachment.
You have to write the uploaded file into a temporary
directory.

See the attachments.  I hope the example could be
useful.

-Caroline

--- Daxin Zuo <dz...@techexcel.com> wrote:

>
> Hi,
>    Please help. Any sugestion is welcome. In my web
> page, users send email
> with attachment, so upload is related. I can provide
> the file in either a
> byte[] array, or in an inputstream. I try to send
> the attachement with
> JavaMail(I know there is email api in Tomcat-Common.
> But I have no a good
> example).
>
> --- my code in a function in a servlet  ---
> DiskFileUpload upload = new DiskFileUpload();
> List items = upload.parseRequest(request);
> Iterator itr = items.iterator();
> item = (FileItem) itr.next();
> .....
> //----- now it is a attachement. ----
> InputStream istrm= item.getInputStream();
> ... ....
> MimeBodyPart messageBodyPart = new MimeBodyPart();
> messageBodyPart.setDisposition(Part.INLINE);
> messageBodyPart.setContent(strBodyText,
> "text/plain");
> MimeMultipart multipart = new MimeMultipart();
> multipart.addBodyPart(messageBodyPart);
> messageBodyPart = new MimeBodyPart(istrm);
>
messageBodyPart.setDisposition(messageBodyPart.ATTACHMENT);
> messageBodyPart.addHeader("Content-Type",strMime);
> //strMime is correct
> messageBodyPart.setFileName(fileName);
> multipart.addBodyPart(messageBodyPart);
> ....
>
>
> NO metter what file it is, the attachement received
> is ATT00211.txt.
> I the file is a text file, the contents are correct.
> if the file is a small zip file, it adds the lines
> as following in attached
> file:
> Content-Type: application/zip; name=idmeta.zip
> Content-Disposition: attachment; filename=idmeta.zip
> Content-Transfer-Encoding: 7bit
>
> What's wrong? Please forward instruction.
>
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:
> tomcat-user-help@jakarta.apache.org
>
>




__________________________________
Do you Yahoo!?
Yahoo! Mail - Helps protect you from nasty viruses.
http://promotions.yahoo.com/new_mail


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Sending email with zip file attach problem

Posted by Caroline Jen <ji...@yahoo.com>.
It is an example of sending bulk mails with
attachment.
You have to write the uploaded file into a temporary
directory.

See the attachments.  I hope the example could be
useful.

-Caroline

--- Daxin Zuo <dz...@techexcel.com> wrote:

> 
> Hi,
>    Please help. Any sugestion is welcome. In my web
> page, users send email
> with attachment, so upload is related. I can provide
> the file in either a
> byte[] array, or in an inputstream. I try to send
> the attachement with
> JavaMail(I know there is email api in Tomcat-Common.
> But I have no a good
> example).
> 
> --- my code in a function in a servlet  ---
> DiskFileUpload upload = new DiskFileUpload();
> List items = upload.parseRequest(request);
> Iterator itr = items.iterator();
> item = (FileItem) itr.next();
> .....
> //----- now it is a attachement. ----
> InputStream istrm= item.getInputStream();
> ... ....
> MimeBodyPart messageBodyPart = new MimeBodyPart();
> messageBodyPart.setDisposition(Part.INLINE);
> messageBodyPart.setContent(strBodyText,
> "text/plain");
> MimeMultipart multipart = new MimeMultipart();
> multipart.addBodyPart(messageBodyPart);
> messageBodyPart = new MimeBodyPart(istrm);
>
messageBodyPart.setDisposition(messageBodyPart.ATTACHMENT);
> messageBodyPart.addHeader("Content-Type",strMime);
> //strMime is correct
> messageBodyPart.setFileName(fileName);
> multipart.addBodyPart(messageBodyPart);
> ....
> 
> 
> NO metter what file it is, the attachement received
> is ATT00211.txt.
> I the file is a text file, the contents are correct.
> if the file is a small zip file, it adds the lines
> as following in attached
> file:
> Content-Type: application/zip; name=idmeta.zip
> Content-Disposition: attachment; filename=idmeta.zip
> Content-Transfer-Encoding: 7bit
> 
> What's wrong? Please forward instruction.
> 
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:
> tomcat-user-help@jakarta.apache.org
> 
> 



		
__________________________________ 
Do you Yahoo!? 
Yahoo! Mail - Helps protect you from nasty viruses. 
http://promotions.yahoo.com/new_mail

Sending email with zip file attach problem

Posted by Daxin Zuo <dz...@techexcel.com>.
Hi,
   Please help. Any sugestion is welcome. In my web page, users send email
with attachment, so upload is related. I can provide the file in either a
byte[] array, or in an inputstream. I try to send the attachement with
JavaMail(I know there is email api in Tomcat-Common. But I have no a good
example).

--- my code in a function in a servlet  ---
DiskFileUpload upload = new DiskFileUpload();
List items = upload.parseRequest(request);
Iterator itr = items.iterator();
item = (FileItem) itr.next();
.....
//----- now it is a attachement. ----
InputStream istrm= item.getInputStream();
... ....
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDisposition(Part.INLINE);
messageBodyPart.setContent(strBodyText, "text/plain");
MimeMultipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart(istrm);
messageBodyPart.setDisposition(messageBodyPart.ATTACHMENT);
messageBodyPart.addHeader("Content-Type",strMime); //strMime is correct
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
....


NO metter what file it is, the attachement received is ATT00211.txt.
I the file is a text file, the contents are correct.
if the file is a small zip file, it adds the lines as following in attached
file:
Content-Type: application/zip; name=idmeta.zip
Content-Disposition: attachment; filename=idmeta.zip
Content-Transfer-Encoding: 7bit

What's wrong? Please forward instruction.



---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


RE: Authentication problem in Sending email from servlet. (tomcate 5)

Posted by Daxin Zuo <dz...@techexcel.com>.
Sorry, no problem. The account password is wrong.

-----Original Message-----
From: Daxin Zuo [mailto:dzuo@techexcel.com]
Sent: Thursday, January 13, 2005 3:44 PM
To: Tomcat Users List
Subject: Authentication problem in Sending email from servlet. (tomcate
5)


Hi,
   In my web page, user sends email with attachment, so upload is related. I
load the file in a byte array, and try to send with JavaMail(I know there is
Mail api in Tomcat-Common. But I have no a good example).

 The related code is copied at the end.
 The email serve needs no user-name and password, because the C++ program
sends email without authentication.

 if I set prop.put("mail.smtp.auth", "false");
 Exception: SendEmail Error: javax.mail.AuthenticationFailedException

 If I set to Password and username to "", or set the user name to the
From-Email address:
SendEmail Error: com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0
Authentication required

Please tell me what's wrong. Thanks.

  import javax.mail.*;
  import javax.mail.internet.*;
  import javax.activation.*;
  import org.apache.commons.net.smtp.*;
  import org.apache.commons.net.io.Util;
  ....

  Properties prop = System.getProperties();
  prop.put("mail.smtp.host", szServer);
  prop.put("mail.smtp.from", strFrom);
  prop.put("mail.transport.protocol", "SMTP");
  final String user = tool.isnull2(szAccount)==""?
				 strFrom:                // From email Address
				 tool.isnull2(szAccount);// Account of the user.
  final String pwd = tool.isnull2(szPassword);
  Authenticator auth = null;

	prop.put("mail.smtp.auth", "true");
	auth = new Authenticator (){
	  public PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(user, pwd);
	  }
	};

  Session ses1=Session.getInstance(prop,auth);

  MimeMessage msg = new MimeMessage(ses1);
  msg.setFrom(new InternetAddress(strFrom));
  String[] Recipts = strRecipts.split(",");
  for( int k=0; k < Recipts.length; k++)
	msg.addRecipient(Message.RecipientType.TO,
                       new InternetAddress(Recipts[k]));
  if (!tool.isnull(strCcRecipts)){
	Recipts = strCcRecipts.split(",");
	for (int k = 0; k < Recipts.length; k++)
	  msg.addRecipient(Message.RecipientType.CC,
			 new InternetAddress(Recipts[k]));
  }

  msg.setSubject(strSubject);
  msg.setHeader("X-Mailer", "Java Mail");
  MimeBodyPart  messageBodyPart = new MimeBodyPart();
  messageBodyPart.setDisposition(Part.INLINE);
  messageBodyPart.setContent(strBodyText, "text/plain");
  MimeMultipart multipart = new MimeMultipart();
  multipart.addBodyPart(messageBodyPart);

  if (AttacheFileSize > 0) {  // one attache file only.
	messageBodyPart = new MimeBodyPart();
	messageBodyPart.setDataHandler(new DataHandler(
		 ByteArrayOfFile,     // byte[] it holds the file contents
		 myFileMimeType));    //String, mime type of the file
	messageBodyPart.setFileName(astrAttach);
	multipart.addBodyPart(messageBodyPart);
  }

  msg.setContent(multipart);
  msg.setSentDate(new Date());
  Transport.send(msg);


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org