SMTP server in Java
Im am currently writing a mail client in java, and want to implement this. However, i havn't got the faintest idea on where to begin. Any push in the right direction would be greatly appreciated!
Thanks
For a SMTP server you might have a look at JAMES: http://james.apache.org/
Similar Messages
-
Getting problem when connecting to SMTP server through java code
Hi all,
I am getting problem when i am going to connect with "Kerio SMTP server" through java code. The error what i am getting is :
"[16/Sep/2008 15:59:09] Sent: Queue-ID: 48cf8a73-000000f9, Recipient: <[email protected]>, Result: failed, Status: 5.3.2 554 5.0.0 Too many hops (101, max 100), message looping" when sending an email from [email protected]Looks like something is set up wrong on your server that's causing messages
to be forwarded around a loop too many times without ever reaching the destination.
For instance, if server A forwards to server B, and server B forwards to server A,
this would happen. -
How can i access gmail's smtp server using java mail api
i m using java mail api to access gmails pop and smtp service to receive and send mail from ur gmail account. I m able to access gmails pop server using the ssl and port 995 , but i can not use its smtp server to which i m connecting using ssl on 465 port. It requires authentication code.
if anybody can help me in this regard i m thnkful to him/her.
thnks in advance.
jogin desaiHere's an example of using SSL + Authentication
http://onesearch.sun.com/search/onesearch/index.jsp?qt=ssl+authentication&subCat=siteforumid%3Ajava43&site=dev&dftab=siteforumid%3Ajava43&chooseCat=javaall&col=developer-forums -
Free SMTP server for Java mail testing
Hi all,
Are there any free SMTP servers that can be downloaded from the Net for Java mail. Thanks.
Regards
RamI am sorry ..may be my question was not very clear. I do not have am SMTP host. I need an SMTP host to route emails...is that possible.
If I have an SMTP host on my machine, then it will act as a router to route messages to other email severs like yahoo or hotmail.
So the "from" will be a user from the SMTP host.i.e my machine user and the "to" will be some email "[email protected]" or "[email protected]".
Is it posssible to route emails directly to any Yahoo or hotmail server using just java mail client?
Thanks
Regards
RP -
Hi!
I am a beginner for JavaMail. I am following the tutorial of jGuru, 'Fundamnetals of JavaMail API'. I have done the following steps:
1. Downloaded JavaMail 1.3, set the classpath to mail.jar.
2. Downloaded JavaBeans Activation Framework and set classpath to activation.jar.
Now when I run the demo program: msgsendsample, I get the message of 'No SMTP server'
As there is one smtp.jar and also a pop3.jar file in the javamail/lib directory, I put them too into classpath. But putting SMTP.server value as localhost:25 does not help. Still i get the message of 'No SMTP server'.
Can anybody help me please on how to set up the smtp and pop servers coming along with javamail-1.3. I would like to avoid downloading another smtp server.
Thanks
Umeshyou need to specify a smtp server the java mail may use to send emails. somewhere in the code must be a variable called something like smtp server where you need to specify the smtp server. this should be an address like smtp.myprovider.com
-
How do i create a mail box in the SMTP server thru a java program
How do i create a mail box in the SMTP server thru a java program. If it is possible thru a java program.pls suggest a mail server compatible for the above possibility to work.
pls help ....Please let me know if it is not at all possible to
create a user account automatically thru a program
(java) in a mail server... how does yahoo work
then..does he manually add a user to the mail
server...By talking to a web server not a mail server.
>
Is not there any mail server that will allow us to
create mailboxes for my java program.. how do the
other web account services work..
As I said mail servers do have management interfaces. You need to find one and then determine what the management interface is. -
Create a java SMTP Server on localhost
URGENT !!!
Can Anybody here help me to find out the ways to create a SMTP server (usinf RFC 2821 )which can connect to any email client such as Outlook Express?...
thanks..must stick to java implementation? why not trying one of those free smtp server avaiable?
i use 602 Lan Suite, simple enough -
Java Mail,SMTP server not starting,help required urgently
Hi i have been working on java mail .Yesterday it was working ok but today suddenely i am getting this thing.its not starting the smtp server i guess,just exiting and get the command prompt ..dont know what to do.help required how to go about this error
am pasting the debug information.please check and let me know
the compilation ,smtp server and others are all valid
thanks
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Pavan>cd C:\Program Files\Java\jdk1.5.0_07\bin
C:\Program Files\Java\jdk1.5.0_07\bin>javac jdbcExample3.java
C:\Program Files\Java\jdk1.5.0_07\bin>java jdbcExample3 smtpserver address
DEBUG: JavaMail version 1.4ea
DEBUG: java.io.FileNotFoundException: C:\Program Files\Java\jdk1.5.0_07\jre\lib\
javamail.providers (The system cannot find the file specified)
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.providers
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax
.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsyste
ms, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com
.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLSt
ore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsyst
ems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.su
n.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=jav
ax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc],
com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP
3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.
sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STOR
E,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Prov
ider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc],
pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems
, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun
Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.S
MTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.address.map
DEBUG: java.io.FileNotFoundException: C:\Program Files\Java\jdk1.5.0_07\jre\lib\
javamail.address.map (The system cannot find the file specified)
C:\Program Files\Java\jdk1.5.0_07\bin>The debug output doesn't show an obvious problem. You're
going to have to actually debug your program. A debugger
might be helpful. -
Java mail(fetch default SMTP server address)
I am writting a code to send an email using Java Mail API.
I have manged what I wanted(send a mail with an attachment)
But in my code I have hard coded the SMTP server address,that is what I dont want to do .Is there anything in java which can fetch the default SMTP server address ?Let me send the code itself to make it clear
Here the host is hard coded to10.1.1.5
I dont want that ,rather I would like my code itself to fetch the host
package javamail;
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendMailUsage {
public static void main(String[] args) {
// SUBSTITUTE YOUR EMAIL ADDRESSES HERE!!!
String to = "[email protected]";
String from = "[email protected]";
// SUBSTITUTE YOUR ISP'S MAIL SERVER HERE!!!
String host = "10.1.1.5";
// Create properties for the Session
Properties props = new Properties();
// If using static Transport.send(),
// need to specify the mail server here
props.put("mail.smtp.host", host);
// To see what is going on behind the scene
props.put("mail.debug", "true");
// Get a session
Session session = Session.getInstance(props);
try {
// Get a Transport object to send e-mail
Transport bus = session.getTransport("smtp");
// Connect only once here
// Transport.send() disconnects after each send
// Usually, no username and password is required for SMTP
bus.connect();
//bus.connect("smtpserver.yourisp.net", "username", "password");
// Instantiate a message
Message msg = new MimeMessage(session);
// Set message attributes
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
// Parse a comma-separated list of email addresses. Be strict.
msg.setRecipients(Message.RecipientType.CC,
InternetAddress.parse(to, true));
// Parse comma/space-separated list. Cut some slack.
msg.setRecipients(Message.RecipientType.BCC,
InternetAddress.parse(to, false));
msg.setSubject("Test E-Mail through Java");
msg.setSentDate(new Date());
// Set message content and send
setTextContent(msg);
msg.saveChanges();
bus.sendMessage(msg, address);
setMultipartContent(msg);
msg.saveChanges();
bus.sendMessage(msg, address);
setFileAsAttachment(msg, "D:/ketan.txt");
msg.saveChanges();
bus.sendMessage(msg, address);
setHTMLContent(msg);
msg.saveChanges();
bus.sendMessage(msg, address);
bus.close();
catch (MessagingException mex) {
// Prints all nested (chained) exceptions as well
mex.printStackTrace();
// How to access nested exceptions
while (mex.getNextException() != null) {
// Get next exception in chain
Exception ex = mex.getNextException();
ex.printStackTrace();
if (!(ex instanceof MessagingException)) break;
else mex = (MessagingException)ex;
// A simple, single-part text/plain e-mail.
public static void setTextContent(Message msg) throws MessagingException {
// Set message content
String mytxt = "This is a test of sending a " +
"plain text e-mail through Java.\n" +
"Here is line 2.";
msg.setText(mytxt);
// Alternate form
msg.setContent(mytxt, "text/plain");
// A simple multipart/mixed e-mail. Both body parts are text/plain.
public static void setMultipartContent(Message msg) throws MessagingException {
// Create and fill first part
MimeBodyPart p1 = new MimeBodyPart();
p1.setText("This is part one of a test multipart e-mail.");
// Create and fill second part
MimeBodyPart p2 = new MimeBodyPart();
// Here is how to set a charset on textual content
p2.setText("This is the second part", "us-ascii");
// Create the Multipart. Add BodyParts to it.
Multipart mp = new MimeMultipart();
mp.addBodyPart(p1);
mp.addBodyPart(p2);
// Set Multipart as the message's content
msg.setContent(mp);
// Set a file as an attachment. Uses JAF FileDataSource.
public static void setFileAsAttachment(Message msg, String filename)
throws MessagingException {
// Create and fill first part
MimeBodyPart p1 = new MimeBodyPart();
p1.setText("This is part one of a test multipart e-mail." +
"The second part is file as an attachment");
// Create second part
MimeBodyPart p2 = new MimeBodyPart();
// Put a file in the second part
FileDataSource fds = new FileDataSource(filename);
p2.setDataHandler(new DataHandler(fds));
p2.setFileName(fds.getName());
// Create the Multipart. Add BodyParts to it.
Multipart mp = new MimeMultipart();
mp.addBodyPart(p1);
mp.addBodyPart(p2);
// Set Multipart as the message's content
msg.setContent(mp);
// Set a single part html content.
// Sending data of any type is similar.
public static void setHTMLContent(Message msg) throws MessagingException {
String html = "<html><head><title>" +
msg.getSubject() +
"</title></head><body><h1>" +
msg.getSubject() +
"</h1><p>This is a test of sending an HTML e-mail" +
" through Java.</body></html>";
// HTMLDataSource is an inner class
msg.setDataHandler(new DataHandler(new HTMLDataSource(html)));
* Inner class to act as a JAF datasource to send HTML e-mail content
static class HTMLDataSource implements DataSource {
private String html;
public HTMLDataSource(String htmlString) {
html = htmlString;
// Return html string in an InputStream.
// A new stream must be returned each time.
public InputStream getInputStream() throws IOException {
if (html == null) throw new IOException("Null HTML");
return new ByteArrayInputStream(html.getBytes());
public OutputStream getOutputStream() throws IOException {
throw new IOException("This DataHandler cannot write HTML");
public String getContentType() {
return "text/html";
public String getName() {
return "JAF text/html dataSource to send e-mail only";
} //End of class -
How do I connect to an SMTP server that requires a username and password?
Hi,
I am currently working on a project for university which requires me to send and receive email. I was until this week able to send mail no problem, but now the SMTP server has been upgraded so that each time a mail is sent it requires the username and password.
Ideally the connection should be made using TLS/SSL, and not use the Authenticator method. I want to pass the username and password directly if possible.
I've been trying to use the following but have been getting handshake, and other exceptions:
SMTPSSLTransport smtpSSLtransport = new SMTPSSLTransport(session,
new URLName("smtp", smtpHost, port, null-File,
"USERNAME", "PASSWORD"));
smtpSSLtransport.setStartTLS(true);
smtpSSLtransport.connect(new Socket(smtpHost, port));
smtpSSLtransport.sendMessage(smtpMessage, message.getAllRecipients());
smtpSSLtransport.close();Can anyone correct this piece of code for me or point me in the right direction of what classes and methods I should be using?
Many thanks in advance,
GordonI always wonder what misleads people to do things this way.
Was there some example you saw that suggested that instantiating
an SMTPSSLTransport was the correct approach? I hope not.
See the smtpsend.java demo program for how to use SMTP
authentication. If you need to use SSL, see the SSLNOTES.txt
file for hints on using the "smtps" protocol. smtpsend.java also
illustrates use of SSL, but you'll need to fix a bug in it to use the
correct property names ("mail.smtps.auth", etc.). -
How to check whether a SMTP server is supporting Authentication or not
Hi All,
We are using Java Mail API 1.3.1/1.3.2 to send the messages. some of the SMTP servers that we use are supporting authentication and some of them are not.
As the SMTPTransport.supportsAuthentication() is not available only in Java mail API 1.4.1, we are identifying the SMTP server whether it is supporting authentication or not in the following way.
Socket clientSocket = null;
InetSocketAddress socketAddress = null;
OutputStream outStream = null;
InputStream inStream = null;
InputStreamReader inReader = null;
OutputStreamWriter outWritter = null;
try
clientSocket = new Socket();
socketAddress = new InetSocketAddress(host, port);
clientSocket.connect(socketAddress, timeout*1000); // convert timeout from second to miliseconds
// 1: now try to execute the given command by passing that on Out-Socket
outStream = clientSocket.getOutputStream();
outWritter = new OutputStreamWriter(outStream);
outWritter.write("ehlo localhost" +"\n");
outWritter.flush();
// 2:Read output of above command
inStream = clientSocket.getInputStream();
inReader = new InputStreamReader(inStream);
// This array limit would be fine to get "AUTH" extension of smtp server.
char[] arr = new char[16384];
StringBuilder strBuilder = new StringBuilder();
inReader.read(arr);
for(int i=0; i< arr.length; i++)
strBuilder.append(arr);
System.out.println(METHOD_NAME + "SMTP server response for ehlo localhost command ->"+strBuilder.toString());
// The output EHLO command comes like below :
// ehlo localhost
// 250-ap9058pc.us.oracle.com Hello ap614ses.us.oracle.com [130.35.33.43], pleased to meet you
// 250-ENHANCEDSTATUSCODES
// 250-PIPELINING
// 250-8BITMIME
// 250-SIZE
// 250-DSN
// 250-ETRN
// 250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
// Since for XATUH ( like internal IP),
// we are not sure, so just checking for AUTH capability.
supported = strBuilder.indexOf("250-AUTH") >=0? true : false;
As shown in above code, we are issuing 'ehlo localhost' command to SMTP server, if the response i. 'strBuilder' contains '250-AUTH' then we are assuming that it is supporting authentication.
But for one SMTP server the 'strBuilder' value is showing as '220 mail.durofelguera.com ESMTP Service (Lotus Domino Release 8.5.2) ready at Thu, 16 Feb 2012 13:57:20 +0100' only which is socket connection output but not 'ehlo localhost' command output.
where as the telnet test output is showing correct only as below
# telnet mail.durofelguera.com 25
Trying 172.20.16.65...
Connected to mail.durofelguera.com.
Escape character is '^]'.
220 mail.durofelguera.com ESMTP Service (Lotus Domino Release 8.5.2) ready
at 0
ehlo localhost
250-mail.durofelguera.com Hello localhost ([172.20.15.209]), pleased to meet
yu
250-HELP
250-AUTH LOGIN
250-SIZE
250 PIPELINING
AUTH LOGIN
The question is why the 'strBuilder' is not showing 'ehlo localhost' conad output where as the telnet test results are showing correctly, what is going wrong here?
Is there any other way to check that whether SMTP server is supporting authentication or not?
Edited by: sarojak on Feb 19, 2012 10:11 PMThere are so many things wrong with your code, it's hard to know where to start...
Basically, the problem is not as simple as you think it is.
For example, some servers might not allow authentication until you've issued
the STARTTLS command.
These days, essentially all servers allow authentication. You're probably better
off just assuming the server supports. -
Configuration error when saving SMTP server
I am configuring CUP 5.3 (SP06). When I put in our SMTP server, I get the following error:
" Action failed. An unknown error occurred while performing the operation. "
It looks like this screen was changed with SP06. I am not filling out anything under "Enter Email Notification Sender" or under "Application URL" (which seems to be new fields).
Here is what the log says:
2009-03-18 16:23:39,339 [SAPEngine_Application_Thread[impl:3]_39] ERROR com.virsa.ae.configuration.actions.SMTPServerNameAction
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1444)
at com.virsa.ae.commons.utils.URLHelper.initialize(URLHelper.java:430)
at com.virsa.ae.configuration.bo.SMTPServerNameBO.saveSMTPServerName(SMTPServerNameBO.java:106)
at com.virsa.ae.configuration.actions.SMTPServerNameAction.saveSMTPServerName(SMTPServerNameAction.java:76)
at com.virsa.ae.configuration.actions.SMTPServerNameAction.execute(SMTPServerNameAction.java:51)
at com.virsa.ae.commons.utils.framework.NavigationEngine.execute(NavigationEngine.java:271)
at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)
Thank you for your help.Hi Peggy,
This is a known bug in AC 5.3 SP6. SAP has added fields for administrator email address, application URL and redirection URL. Even though application URL and redirection URL do not show up as manadatory fields but they are required to save the configuration. To get pass through this error, just provide anything in those 2 textboxes with some dummy email address in administrator email address textbox. You should be able to save it now.
This is being fixed in SP7 which should release somewhere around end of March.
Please check this similar thread:
CUP SMTP server error
Regards,
Alpesh -
i'm new to java mail api
i'm using a machine which is in a network under a proxy server and a fire wall.our network has a smtp server.
i tried to send a amil using a smtp server.
my codes are
package mailtest;
import java.util.Properties;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.InternetAddress;
import javax.mail.MessagingException;
import java.io.*;
import javax.mail.Message;
import javax.mail.Transport;
public class FirstMail {
String mailServer;
String host;
public FirstMail() {
//global
mailServer="mail.smtp.host";
host="mail.informatics.lk";
// Get system properties
Properties myProperties=new Properties() ;
// Setup mail server
myProperties.put(mailServer,host) ;
myProperties.put("mail.smtp.auth", "true");
// Get session
Session myMailSession;
myMailSession=Session.getInstance(myProperties,null);
//myMailSession.setDebug(true);
// Define message
MimeMessage message=new MimeMessage(myMailSession);
// Set the from address
//try {
try {
message.setFrom(new InternetAddress("[email protected]","CHANAKA ARUNA"));
catch (UnsupportedEncodingException ex1) {
System.out.println("CAN NOT SEND FROM");
catch (MessagingException ex1) {
System.out.println("CAN NOT SEND FROM");
// Set the to address
try {
message.addRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
catch (MessagingException ex) {
System.out.println("CAN NOT SEND TO");
// Set the subject
try {
message.setSubject("RE:$$$$");
catch (MessagingException ex2) {
System.out.println("WRONG SUBJECT");
// Set the content
try {
message.setText("***chanaka***");
catch (MessagingException ex3) {
System.out.println("WRONG MESSAGE");
// Send message
try {
Transport.send(message);
System.out.println("MESSAGE SENT");
catch (MessagingException ex4) {
System.out.println("UNABLE TO SEND");
public static void main(String[] args) {
FirstMail firstMail1 = new FirstMail();
it was not work, but when i use the ip address of smtp server instead of mail.informatics.lk at
host="mail.informatics.lk";
it worked properly and i could get a mail to my yahoo address.
but i have seen some have used host name like
host="smtp.snet.yahoo.com";
how can i do it using yahoo smtp server.
also i want to know whethr i can use that our smtp server from a computer outside of the net work.
pls help me
txs lot.Almost certainly, if you are behind a proxy server it will only be a proxy for HTTP traffic, and you will not be able to communicate with an SMTP server outside your network. But you have your own SMTP server so why would you want to?
If you have a proxy server and an SMTP server then there will be people responsible for supporting them. Talk to those people and ask them to give you the basic explanation of networking that you need. -
How to configure the smtp server..
i had an error when running the java mail program..
this is my program
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.io.*;
import java.util.Properties;
public class MailClient
public void sendMail(String mailServer, String from, String to,
String subject, String messageBody,
String[] attachments) throws
MessagingException, AddressException
// Setup mail server
Properties props = System.getProperties();
props.put("mail.smtp.host", mailServer);
// Get a mail session
Session session = Session.getDefaultInstance(props, null);
// Define a new mail message
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
// Create a message part to represent the body text
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(messageBody);
//use a MimeMultipart as we need to handle the file attachments
Multipart multipart = new MimeMultipart();
//add the message body to the mime message
multipart.addBodyPart(messageBodyPart);
// add any file attachments to the message
// addAtachments(attachments, multipart);
// Put all message parts in the message
message.setContent(multipart);
// Send the message
Transport.send(message);
protected void addAtachments(String[] attachments, Multipart multipart)
throws MessagingException, AddressException
for(int i = 0; i<= attachments.length -1; i++)
String filename = attachments;
MimeBodyPart attachmentBodyPart = new MimeBodyPart();
//use a JAF FileDataSource as it does MIME type detection
DataSource source = new FileDataSource(filename);
attachmentBodyPart.setDataHandler(new DataHandler(source));
//assume that the filename you want to send is the same as the
//actual file name - could alter this to remove the file path
attachmentBodyPart.setFileName(filename);
//add the attachment
multipart.addBodyPart(attachmentBodyPart);
public static void main(String[] args)
try
MailClient client = new MailClient();
String server="smtp.canvasindia.com";
String from="[email protected]";
String to = "[email protected]";
String subject="Test";
String message="Testing";
String[] filenames ={"c:/A.java"};
client.sendMail(server,from,to,subject,message,filenames);
catch(Exception e)
e.printStackTrace(System.out);
the error is .................
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 553 Attack detected from p
ool 59.144.8.116. <http://unblock.secureserver.net/?ip=59.144.8.*>
at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1196)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:584)
at javax.mail.Transport.send0(Transport.java:169)
at javax.mail.Transport.send(Transport.java:98)
at MailClient.sendMail(MailClient.java:47)
at MailClient.main(MailClient.java:84)
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 553 Attack detected fro
m pool 59.144.8.116. <http://unblock.secureserver.net/?ip=59.144.8.*>
at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1047)
... 5 more
how to configure the smtp server in my machine..
please guide me...This uses gmail account, and gmail smtp
* MailSender.java
* Created on 14 November 2006, 17:07
* This class is used to send mails to other users
package jmailer;
* @author Abubakar Gurnah
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
public class MailSender{
private String d_email,d_password;
* This example is for gmail, you can use any smtp server
* @param d_email --> your gmail account e.g. [email protected]
* @param d_password --> your gmail password
* @param d_host --> smtp.gmail.com
* @param d_port --> 465
* @param m_to --> [email protected]
* @param m_subject --> Subject of the message
* @param m_text --> The main message body
public String send(String d_email,String d_password,String d_host,String d_port,
String m_from,String m_to,String m_subject,String m_text ) {
this.d_email=d_email;
this.d_password=d_password;
Properties props = new Properties();
props.put("mail.smtp.user", d_email);
props.put("mail.smtp.host", d_host);
props.put("mail.smtp.port", d_port);
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.auth", "true");
//props.put("mail.smtp.debug", "true");
props.put("mail.smtp.socketFactory.port", d_port);
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
SecurityManager security = System.getSecurityManager();
try {
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getInstance(props, auth);
//session.setDebug(true);
MimeMessage msg = new MimeMessage(session);
msg.setText(m_text);
msg.setSubject(m_subject);
msg.setFrom(new InternetAddress(m_from));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(m_to));
Transport.send(msg);
return "Successful";
} catch (Exception mex) {
mex.printStackTrace();
return "Fail";
//public static void main(String[] args) {
// MailSender blah = new MailSender();
private class SMTPAuthenticator extends javax.mail.Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(d_email, d_password);
} -
How to connect to my provider SMTP server?
hi,
i traying to connect to SMTP of my net provider, but i have problem like this:
DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "mailhost", port 25, isSSL false
javax.mail.MessagingException: Unknown SMTP host: mailhost
e.getCause() = java.net.UnknownHostException: mailhost
HELP plz :/The name of your "net provider" is probably not "mailhost".
Set the mail.smtp.host property to the name of the SMTP
server you want to connect to.
Maybe you are looking for
-
my 5th generation ipod won't sync anymore to my PowerMac G4. It worked fine, but when I installed a new hard drive it won't work anymore. I've re-installed iTunes, the latest version for Tiger, I've reset and restored my iPod. The ipod shows up fi
-
New Audigy Beta released today, for the driver hungry people
Hurry in under Creative's download section and download them, if you need them. Please notice they don't work with all Audigy cards and may break compatibilty with the other creative applications such as the mentioned Surround Mixer, THX console and
-
R/3 Transaction Iviews vs Imported ABAP Roles on Portal
Hi, In one of our requirement, Business needs to set up such that client should be able to have web based access to R/3 Transaction through Portal. We can achieve that by creating system in portal and create Transaction iview with required T-code of
-
Sequences in Multicam not grouping
Hello, So I'm video tutorialing my way through the wondrous world of multicam, but I have a sequence that are two clips that I have grouped together on the timeline, but won't remain so when I bring them into multicam. Is there any way around this? O
-
Dear friends, our scenario is like this, using MB1A, we are returning the sub assemblies back to the vendor. this transaction is used by multiple users. we want put have a control on this by putting some confirmation process by authorized personnel.