1. 電子メールの概要
電子メールは多くの情報で構成されています。主な情報は次のとおりです。カーボン コピーなどのその他の情報は、現時点では考慮されていません。
1. 受信者: 受信者の電子メール アドレス ([email protected] など)
2. 受信者名:loadfate [email protected] など、ほとんどの電子メールが表示されるときに表示されます。
3. 送信者: 送信者のメールアドレス
4. 差出人の名前:
5.件名: メールのタイトル
6. コンテンツと添付ファイル: 電子メールの主なコンテンツ
2. Java を使用して電子メールを送信するための一般的な手順
一般的なプロジェクトでは、別のメールサーバーは存在せず、他人のサーバーを使用するのが一般的です。
1. SMTP サーバーを設定します。メール サーバーごとにアドレスが異なります。たとえば、smtp.qq.com は Tencent の SMTP サーバーを表します。
2. 認証: サーバーのアカウントとパスワードを使用してサーバーにログインします。
3. 電子メールの作成: 送信者、受信者、内容などのすべての情報を含む電子メールを作成します。
4. 電子メールのプロパティを設定します。電子メールのプロパティにデータを追加します。
5. メールの送信: パッケージが異なるため、送信方法が異なります。
3. JavaメールとApacheメール
Apache Mail は Java Mail をカプセル化したもので、より使いやすく、論理階層の感覚が優れています。
Java Mail を使用するには、jar パッケージ mail.jar をインポートするだけです。
Apache Mail を使用する場合、mail.jar と commons-email-1.3.1.jar の 2 つの jar パッケージをインポートする必要があります。
4. Java Mail を使用して電子メールを送信する
次のようにコードをコピーします。
public static void main(String[] args) throws Exception {
最終文字列ユーザー = "779554589";
最終文字列パスワード = "";
文字列 fromAddress = "[email protected]";
文字列 toAddress = "[email protected]";
文字列件名 = "電子メールのテスト件名";
String content = "これはテストメールです<b>はは</b>";
//設定パラメータ
プロパティ props = new Properties();
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.qq.com");
//方法 1: トランスポート オブジェクトを使用して電子メールを送信する
{
//パラメータを使用してセッションを生成する
セッションセッション = Session.getInstance(props);
// デバッグモードを有効にする
session.setDebug(true);
//メールの作成と情報の設定
メッセージ message = 新しい MimeMessage(セッション);
message.setFrom(新しいインターネットアドレス(fromアドレス));
message.setSubject(件名);
message.setText(コンテンツ);
//転送を作成
トランスポート Transport = session.getTransport();
//SMTPサーバーに接続します
Transport.connect(ユーザー、パスワード);
//送信
Transport.sendMessage(message, new InternetAddress[] { new InternetAddress(toAddress) });
トランスポート.クローズ();
}
//方法 2: Transport クラスの静的メソッドを使用して電子メールを送信する
{
//セッション生成時に承認された接続を取得します
セッション session = Session.getInstance(props, new Authenticator() {
@オーバーライド
protected PasswordAuthentication getPasswordAuthentication() {
新しい PasswordAuthentication(ユーザー、パスワード) を返します。
}
});
session.setDebug(true);
//メールの作成と情報の設定
メッセージ message = 新しい MimeMessage(セッション);
message.setSubject(件名);
message.setFrom(新しいインターネットアドレス(fromアドレス));
message.setRecipient(RecipientType.TO, new InternetAddress(toAddress));
message.setContent(content, "text/html;charset=utf-8");
// 直接送信します。メッセージは承認されたセッションを通じて生成されます
Transport.send(メッセージ);
}
}
5. Apache Mail を使用して電子メールを送信する
次のようにコードをコピーします。
パブリック クラス ApacheMailTest {
// SMTPサーバー
プライベート文字列ホスト名 = "smtp.qq.com";
//アカウントとパスワード
プライベート文字列ユーザー名 = "779554589";
private String パスワード = "これは秘密です";
// 送信者
プライベート文字列 fromAddress = "[email protected]";
// 送信者の名前
プライベート文字列 fromName = "loadfate";
public static void main(String[] args) throws Exception {
//受信者と受信者名
文字列 toAddress = "[email protected]";
文字列 toName = "loadfate";
ApacheMailTest テスト = new ApacheMailTest();
// 簡単に参照できるよう、すべての例外が処理されます
test.sendSimpleEmail(toAddress, toName);
test.sendHtmlEmail(toAddress, toName);
test.sendMultiPartEmail(toAddress, toName);
System.out.println("送信完了");
}
// メッセージに似た単純なメールを送信します
public void sendSimpleEmail(String toAddress, String toName) throws Exception {
SimpleEmail 電子メール = new SimpleEmail();
email.setHostName(hostName);//SMTPサーバーを設定します
email.setAuthentication(userName,password);//認可情報を設定します
email.setCharset("utf-8");
email.setFrom(fromAddress, fromName, "utf-8");//送信者情報を設定する
email.addTo(toAddress, toName, "utf-8");//受信者情報を設定します
email.setSubject("Test Subject");//件名を設定します
email.setMsg("This is a simple test!");//メールの内容を設定する
email.send();//メールを送信する
}
//HTML コンテンツを含む電子メールを送信する
public void sendHtmlEmail(String toAddress, String toName) throws Exception {
HtmlEmail 電子メール = new HtmlEmail();
email.setHostName(ホスト名);
email.setAuthentication(ユーザー名, パスワード);
email.setCharset("utf-8");
email.addTo(toAddress, toName, "utf-8");
email.setFrom(fromAddress, fromName, "utf-8");
email.setSubject("これは HTML メールです");
// htmlコンテンツを設定します。実際に使用する場合は、記述されたhtmlコードをテキストから読み込むことができます。
email.setHtmlMsg("<div style='width:100px;height:200px;'>a</div>");
email.send();
}
//添付ファイルなどを含む複雑なメールを送信します。
public void sendMultiPartEmail(String toAddress, String toName) throws Exception {
MultiPartEmail 電子メール = null;
電子メール = 新しい MultiPartEmail();
email.setHostName(ホスト名);
email.setAuthentication(ユーザー名, パスワード);
email.setCharset("utf-8");
email.addTo(toAddress, toName, "utf-8");
email.setFrom(fromAddress, fromName, "utf-8");
email.setSubject("これは添付ファイルのあるメールです");
email.setMsg("<a href='#'>テストコンテンツ</a>");
//メールに追加コンテンツを追加します
EmailAttachment 添付ファイル = new EmailAttachment();
attachment.setPath("D://mail.txt");//ローカルファイル
//attachment.setURL(new URL("http://xxx/a.gif"));//リモート ファイル
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("説明情報");
// 添付ファイルの表示名を設定します。これはエンコードする必要があります。そうしないと中国語が文字化けします。
attachment.setName(MimeUtility.encodeText("Mail.txt"));
//メールに添付ファイルを追加
email.attach(添付ファイル);
email.send();
}
}
6. 添付プロジェクトフォルダー:maildemo
ダウンロードアドレス: http://pan.baidu.com/s/1bn1Y6BX
ご質問やご提案がございましたら、ご連絡ください
ファイルの説明:
1. maildemo.zip: maildemo のソースコード
2. mail.jar: Java MailのJarパッケージ
3. commons-email-1.3.1.jar: Apache Mail の jar パッケージ