Newsletter |
Spring Send Email With Attachment Using Gmail SMTP – Example
Spring » on Dec 11, 2012 { 12 Comments } By Sivateja
We know how to send a plane spring E-mail i mean without any attachments, Let us see how to send spring E-mail with attachment which is a similar application just like plane one, but with little modifications in MailLogic.java, will show you how..
Files Required
- ClientLogic.java
- MailLogic.java
- spconfig.xml
Jars Required
- activation.jar
- classes12.jar
- commons-email-1.0.jar
- mail.jar
ClientLogic.java
package java4s; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; public class ClientLogic { public static void main(String[] args) { Resource res = new ClassPathResource("spconfig.xml"); BeanFactory factory = new XmlBeanFactory(res); Object o = factory.getBean("id2"); MailLogic ml = (MailLogic)o; ml.sendM("Enter from email id","Enter to email id","Spring Mail Using Google SMTP","This Is Body With Attachment"); } }
MailLogic.java
package java4s; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.MailParseException; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; public class MailLogic { private JavaMailSender mail; public void setMail(JavaMailSender mail) { this.mail = mail; } public void sendM(String from, String to, String subject, String msg) { try{ MimeMessage Mimemessage = mail.createMimeMessage(); MimeMessageHelper message = new MimeMessageHelper(Mimemessage, true); message.setFrom(from); message.setTo(to); message.setSubject(subject); message.setText(msg); //message.setText("My alternative text", true); //message.addBcc("BCC email"); //message.addCc("CC email"); FileSystemResource file = new FileSystemResource("E:\\java4s.com.png"); message.addAttachment(file.getFilename(), file); mail.send(Mimemessage); }catch (MessagingException e) { throw new MailParseException(e); } System.out.println("Mail Sent Successfully With Attachment.....!"); } }
spconfig.xml
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans> <bean id="id1" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.gmail.com" /> <property name="port" value="465" /> <property name="username" value="From Gmail email id" /> <property name="password" value="and it password" /> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> <prop key="mail.smtp.socketFactory.port">465</prop> <prop key="mail.debug">true</prop> <prop key="mail.smtp.starttls.enable">true</prop> </props> </property> </bean> <bean id="id2" class="java4s.MailLogic"> <property name="mail" ref="id1" /> </bean> </beans>
Output
Execution Flow
- ClientLogic.java is our main class, and we are calling id2 [line number 15]
- So come to spconfig.xml and check line number 23, we are calling java4s.MailLogic.java having property mail of type JavaMailSender Interface (provided by spring), so it will moves to JavaMailSenderImpl (id1, implemented class of JavaMailSender) and there we have given all the Email related credentials
- JavaMailSender contains mail() method to send a mail
- JavaMailSender‘s mail() method contains MimeMessage class object as parameter, like mail(MimeMessage Object)
- Finally we set From,To,Subject,Msg and called send() that’s it
How simple its is ? 🙂
You Might Also Like
::. About the Author .:: | ||
Comments
12 Responses to “Spring Send Email With Attachment Using Gmail SMTP – Example”
gr8 work .
easy to understand for newcomer
what is use of cloning plz specify any one…
Regards
A Alam.
Hi Sivateja Kandula,
I have gone through the complete tutorial. It is very helpful to me.
Thanks a lot.
How to do that for an email Id with 2 way verification on?
Hi Teja,
Thanks for your Tutorial,keep up the good work.
Hey Sivateja Kandula,
Thank you for your tutorial.
They are amazing 🙂 🙂
please add the spring security concept(total) in spring framework
Hello Java4s,
Its an awesome web content for beginners….! halts off to you…! 🙂
Good article…
Hello Java4s,
Its an awesome web content for beginners….! keep it up
its really simple and helpful.. thank you so much 🙂
i feel it will be really better, when you create a youtube channel and start posting videos of the concepts