MySQL と Java を使用して簡単な電子メール送信機能を実装する方法
今日のインターネット時代では、電子メールは個人と企業間のコミュニケーションに広く使用されています。シンプルなメール送信機能は多くの開発者にとって非常に便利です。
この記事では、MySQL と Java を使用して簡単なメール送信機能を実装する方法と、具体的なコード例を紹介します。
まず、MySQL データベースを作成し、その中に電子メール関連の情報を保存するためのテーブルを作成する必要があります。この例では、データベース名が「mail」、テーブル名が「mails」であると仮定します。
次は、テーブル構造を作成する SQL ステートメントです:
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 );
次に、実装する Java クラスを作成します。メール送信機能。この例では、JavaMail API を使用して電子メールを送信します。
まず、JavaMail API と 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); } } }
上記の MailSender クラスの使い方はとても簡単です。 MailSender クラスをアプリケーションに導入し、その sendMail メソッドを呼び出して電子メールを送信するだけです。
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(); } } }
この例では、sendMail メソッドを使用して電子メールを送信し、電子メール関連の情報をデータベースに保存します。
概要
この記事では、MySQL と Java を使用して簡単なメール送信機能を実装する方法を紹介します。 JavaMail API を使用して電子メールを送信し、MySQL を使用して電子メールの記録を保存することで、単純な電子メール送信機能を簡単に実装できます。
この記事がお役に立てば幸いです!
以上がMySQLとJavaを使って簡単なメール送信機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。