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 Use Boruvka’s Algorithm to Find the Minimum Spanning Tree
Java – Delete a File
HttpClient Connection Management
Java Program to Implement Find all Forward Edges in a Graph
Vector trong Java
@DynamicUpdate with Spring Data JPA
Custom JUnit 4 Test Runners
CyclicBarrier in Java
Java Program to Implement Sparse Matrix
Guide to Java 8’s Collectors
Java Program to Describe the Representation of Graph using Adjacency Matrix
Spring Boot - Servlet Filter
Documenting a Spring REST API Using OpenAPI 3.0
Error Handling for REST with Spring
Guide to the Java Clock Class
Java Program to Implement Variable length array
Java Program to Implement Sorted Vector
Hướng dẫn Java Design Pattern – Command
Introduction to Apache Commons Text
Convert Hex to ASCII in Java
Spring Data JPA Delete and Relationships
Java Program to Search for an Element in a Binary Search Tree
Spring MVC + Thymeleaf 3.0: New Features
Remove All Occurrences of a Specific Value from a List
Understanding Memory Leaks in Java
New Features in Java 9
Java Program to Find Path Between Two Nodes in a Graph
Java Program to Perform Sorting Using B-Tree
Allow user:password in URL
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
Logout in an OAuth Secured Application
Spring Boot - Sending Email