Maison > Article > base de données > Comment utiliser MySQL et Java pour implémenter une fonction simple d'envoi d'e-mails
Comment utiliser MySQL et Java pour implémenter une simple fonction d'envoi d'e-mails
À l'ère d'Internet d'aujourd'hui, le courrier électronique est largement utilisé pour la communication entre les particuliers et les entreprises, donc la mise en œuvre d'une simple fonction d'envoi d'e-mails est pour de nombreux développeurs. utile.
Cet article expliquera comment utiliser MySQL et Java pour implémenter une fonction simple d'envoi d'e-mails et fournira des exemples de code spécifiques.
Tout d'abord, nous devons créer une base de données MySQL et y créer une table pour stocker les informations relatives aux e-mails. Dans cet exemple, nous supposons que le nom de la base de données est « mail » et que le nom de la table est « mails ».
Ce qui suit est l'instruction SQL pour créer la structure de la table :
CREATE DATABASE mail; USE mail; CREATE TABLE mails ( id INT PRIMARY KEY AUTO_INCREMENT, sender VARCHAR(50), receiver VARCHAR(50), subject VARCHAR(100), body TEXT, sent_date DATETIME );
Ensuite, nous créons une classe Java pour implémenter la fonction d'envoi d'e-mails. Dans cet exemple, nous utilisons l'API JavaMail pour envoyer des e-mails.
Tout d'abord, nous devons importer les dépendances associées de l'API JavaMail et du pilote de connexion MySQL.
import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.sql.DataSource; import javax.naming.InitialContext; import javax.naming.NamingException; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.ScalarHandler; import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; public class MailSender { // 邮件服务器地址 private static final String SMTP_HOST = "smtp.example.com"; // 邮件服务器端口 private static final int SMTP_PORT = 587; // 发送者邮箱地址 private static final String SENDER_EMAIL = "sender@example.com"; // 发送者邮箱密码 private static final String SENDER_PASSWORD = "password"; // 数据库连接池 private static DataSource dataSource; // 初始化数据库连接池 static { dataSource = setupDataSource(); } // 获取数据库连接 private static DataSource setupDataSource() { MysqlDataSource ds = new MysqlDataSource(); ds.setURL("jdbc:mysql://localhost:3306/mail"); ds.setUser("root"); ds.setPassword("password"); return ds; } // 发送邮件 public void sendMail(String receiver, String subject, String body) throws MessagingException, NamingException { // 创建会话 Properties props = new Properties(); props.put("mail.smtp.host", SMTP_HOST); props.put("mail.smtp.port", SMTP_PORT); Session session = Session.getInstance(props, new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(SENDER_EMAIL, SENDER_PASSWORD); } }); // 创建邮件 MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(SENDER_EMAIL)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(receiver)); message.setSubject(subject); message.setText(body); // 发送邮件 Transport.send(message); // 将邮件记录插入数据库 try (Connection conn = dataSource.getConnection()) { String sql = "INSERT INTO mails(sender, receiver, subject, body, sent_date) VALUES (?, ?, ?, ?, NOW())"; Object[] params = { SENDER_EMAIL, receiver, subject, body }; QueryRunner runner = new QueryRunner(); runner.insert(conn, sql, new ScalarHandler<>(), params); } } }
Il est très simple d'utiliser la classe MailSender ci-dessus. Introduisez simplement la classe MailSender dans votre application et appelez sa méthode sendMail pour envoyer des e-mails.
public class Main { public static void main(String[] args) { MailSender sender = new MailSender(); try { String receiver = "receiver@example.com"; String subject = "邮件主题"; String body = "邮件内容"; sender.sendMail(receiver, subject, body); System.out.println("邮件发送成功!"); } catch (MessagingException | NamingException e) { e.printStackTrace(); } } }
Dans cet exemple, nous utilisons la méthode sendMail pour envoyer un e-mail et stocker les informations pertinentes de l'e-mail dans la base de données.
Résumé
Cet article explique comment utiliser MySQL et Java pour implémenter une fonction simple d'envoi d'e-mails. En utilisant l'API JavaMail pour envoyer des e-mails et en utilisant MySQL pour enregistrer les enregistrements d'e-mails, nous pouvons facilement implémenter des fonctions simples d'envoi d'e-mails.
J'espère que cet article vous sera utile !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!