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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]