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:
Collect a Java Stream to an Immutable Collection
Transactions with Spring and JPA
Java Program to Generate Random Numbers Using Middle Square Method
Spring 5 WebClient
Request a Delivery / Read Receipt in Javamail
Giới thiệu Json Web Token (JWT)
Java Program to Generate All Subsets of a Given Set in the Lexico Graphic Order
Java Program to Implement Flood Fill Algorithm
Spring @RequestParam Annotation
Jackson Ignore Properties on Marshalling
Assertions in JUnit 4 and JUnit 5
Documenting a Spring REST API Using OpenAPI 3.0
Java Program to Implement Wagner and Fisher Algorithm for online String Matching
Join and Split Arrays and Collections in Java
Hướng dẫn Java Design Pattern – Builder
Java Program to Implement Traveling Salesman Problem using Nearest neighbour Algorithm
Java equals() and hashCode() Contracts
Java Program to Convert a Decimal Number to Binary Number using Stacks
Configure a Spring Boot Web Application
Java Program to Perform Optimal Paranthesization Using Dynamic Programming
Tips for dealing with HTTP-related problems
Java Program to Implement Johnson’s Algorithm
Extra Login Fields with Spring Security
Extract links from an HTML page
Stack Memory and Heap Space in Java
Spring Boot - Apache Kafka
Configuring a DataSource Programmatically in Spring Boot
Java Program to Implement wheel Sieve to Generate Prime Numbers Between Given Range
Iterable to Stream in Java
A Guide to Java HashMap
Spring Data JPA @Modifying Annotation
Consumer trong Java 8