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:
Spring 5 WebClient
Java Program to implement Bit Set
Jackson Exceptions – Problems and Solutions
Java Program to Implement Ternary Search Tree
Giới thiệu java.io.tmpdir
Connect through a Proxy
Giới thiệu thư viện Apache Commons Chain
Reversing a Linked List in Java
A Quick Guide to Spring Cloud Consul
Spring MVC + Thymeleaf 3.0: New Features
Java Program to Create a Random Linear Extension for a DAG
Java – Try with Resources
New Features in Java 15
Java Program to Check whether Undirected Graph is Connected using DFS
Extract network card address
Java Program to do a Breadth First Search/Traversal on a graph non-recursively
Java Program to Find Minimum Element in an Array using Linear Search
Guide to the Synchronized Keyword in Java
Java Program to Find Shortest Path Between All Vertices Using Floyd-Warshall’s Algorithm
Introduction to Spring Data REST
Hướng dẫn sử dụng Java Annotation
Java Program to find the maximum subarray sum using Binary Search approach
An Introduction to ThreadLocal in Java
Java Program to Implement Traveling Salesman Problem using Nearest neighbour Algorithm
Intro to the Jackson ObjectMapper
Java List UnsupportedOperationException
Implementing a Runnable vs Extending a Thread
Java Program to Implement Euler Circuit Problem
Java Program to Implement Cubic convergence 1/pi Algorithm
Java Program to Compute Discrete Fourier Transform Using the Fast Fourier Transform Approach
Spring Boot - Database Handling
How to Break from Java Stream forEach