SMTP is the protocol used to send an email.
import java.net.*; import java.io.*; public class SendVietMXMail { public static void main(String s[]) { // // Send fake mail from Elvis Presley // // SendVietMXMail [mail server] [recipient address] // mail server can be hostname or IP address // // ex. SendVietMXMail mail.company.com myFriend@somewhere.vn // SendVietMXMail t = new SendVietMXMail(); t.sendMail(s[0], s[1]); } public void sendMail(String mailServer, String recipient) { try { Socket s = new Socket(mailServer, 25); BufferedReader in = new BufferedReader (new InputStreamReader(s.getInputStream(), "8859_1")); BufferedWriter out = new BufferedWriter (new OutputStreamWriter(s.getOutputStream(), "8859_1")); send(in, out, "HELO theWorld"); // warning : some mail server validate the sender address // in the MAIL FROm command, put your real address here send(in, out, "MAIL FROM: <viet.mai@maixuanviet.com>"); send(in, out, "RCPT TO: " + recipient); send(in, out, "DATA"); send(out, "Subject: In the ghetto"); send(out, "From: Viet Mai <viet.mai@maixuanviet.com>"); send (out, "\n"); // message body send(out, "I'm alive. Help me!"); send(out, "\n.\n"); send(in, out, "QUIT"); s.close(); } catch (Exception e) { e.printStackTrace(); } } public void send(BufferedReader in, BufferedWriter out, String s) { try { out.write(s + "\n"); out.flush(); System.out.println(s); s = in.readLine(); System.out.println(s); } catch (Exception e) { e.printStackTrace(); } } public void send(BufferedWriter out, String s) { try { out.write(s + "\n"); out.flush(); System.out.println(s); } catch (Exception e) { e.printStackTrace(); } } }
Done! Happy Coding!
Related posts:
Java Program to Implement Suffix Tree
Java Program to Find the Median of two Sorted Arrays using Binary Search Approach
Debugging Reactive Streams in Java
Java Program to Implement Skew Heap
Java Program to Perform Quick Sort on Large Number of Elements
Circular Dependencies in Spring
Spring Boot: Customize Whitelabel Error Page
Java Program to Represent Linear Equations in Matrix Form
Java Program to Check whether Directed Graph is Connected using DFS
Java Program to Implement Uniform-Cost Search
A Guide to TreeMap in Java
Java Program to Use rand and srand Functions
A Guide to the Java ExecutorService
@DynamicUpdate with Spring Data JPA
Examine the internal DNS cache
A Guide to Spring Cloud Netflix – Hystrix
Java Program to Construct an Expression Tree for an Prefix Expression
Understanding Memory Leaks in Java
Java Program to Implement First Fit Decreasing for 1-D Objects and M Bins
Map Serialization and Deserialization with Jackson
Mockito and JUnit 5 – Using ExtendWith
Java Program to Implement DelayQueue API
Java 8 Stream API Analogies in Kotlin
Handle EML file with JavaMail
How to Break from Java Stream forEach
Java Program to Implement Suffix Array
Java Program to Implement Sorted List
Java Program to Implement Stack
@Lookup Annotation in Spring
Cachable Static Assets with Spring MVC
Hướng dẫn Java Design Pattern – Chain of Responsibility
Java Program to find the maximum subarray sum O(n^2) time(naive method)