SpringBootでQQメール機能を送る実現コード
本文はvhrシリーズの第12編で、プロジェクトの住所はhttps://github.com/lenve/vhrです。
メールを送るのもありふれた問題です。コードは簡単ですが、多くの子供たちは過程をよく理解していないので、子供たちとこの話をするつもりです。
メールプロトコル
私たちはよくSMTP、POP 3、IMAPなどの様々なメールプロトコルを耳にしますが、これらのプロトコルはどのような役割を果たしていますか?まずこの問題について討論しましょう。
SMTPはTCP/IPベースのアプリケーション層プロトコルであり、江湖の位置はHTTPに似ています。SMTPサーバのデフォルトの傍受ポート番号は25です。ここを見て、SMTPプロトコルがTCP/IPベースのアプリケーション層プロトコルである以上、私もソケットを通してメールを送ることができるのではないかと思います。答えは肯定です。
生活の中でメールを送るには、次のような手順があります。
1.深センの王さんはまずメールを深センの郵便局に送ります。
2.深センの郵便局は上海の郵便局にメールを送ります。
3.上海の張さんは郵便局に来てメールを取ります。
これは縮小版の生活の中でメールを送る過程です。これらの3つのステップは、それぞれ私たちのメール送信プロセスに対応してもよく、[email protected]から[email protected]にメールが送信されると仮定する。
[email protected]は、まずメールをテンセントのメールサーバに送ります。
2.騰訊のメールサーバーは私達のメールを網易のメールサーバーに送ります。
[email protected]は網易のメールサーバーに登録してメールを見ます。
メール便は大体この過程です。この過程は複数の協議に関連しています。別々に見てみます。
SMTPプロトコルは全部Simple Mail Transfer Protocolと呼ばれ、簡単なメール転送プロトコルと訳され、SMTPサーバ間のメールクライアントソフトウェアとSMTPサーバ間の通信ルールを定義しています。つまり[email protected]ユーザが先にメールをテンセントのSMTPサーバに送る過程はSMTPプロトコルを使って、テンセントのSMTPサーバが網易のSMTPサーバにメールを送る過程も依然としてSMTPプロトコルを使っています。SMTPサーバはメールを受信するために用いられます。POP 3プロトコルはすべてPost Office Protocolと呼ばれ、郵便局プロトコルと訳されています。メールクライアントとPOP 3サーバとの間の通信ルールを定義していますが、このプロトコルはどの場面で使われますか?網易のSMTPサーバにメールが到着した後、[email protected]ユーザはサーバに登録してメールを確認する必要があります。このとき、このプロトコルは使用されます。メールサービスプロバイダは各ユーザに専用のメールストア空間を提供します。SMTPサーバはメールを受信した後、メールを該当ユーザのメールストア空間に保存します。メールサービスのPOP 3メールサーバーで完成する必要があります。最後に、IMAPプロトコルを聞いたことがある仲間もいるかもしれません。このプロトコルはPOP 3プロトコルに対する拡張であり、機能がより強く、作用が似ています。ここでは説明を省略します。
QQメールを送る準備作業
まず私たちはQQメールのページに登録して、上の設定ボタンをクリックします。
アカウントのタブをクリックします。
アカウントのタブでPOP 3/SMTPを開くオプションを見つけました。
クリックしてオープンし、関連機能をオンにします。オープンプロセスは携帯電話番号の検証が必要です。手順に従って操作すればいいです。詳細は説明しません。オープンに成功したら、認証コードを取得して、この番号を保存して、後で使用します。
そして、JavaxMailというjarカバンが必要です。パートナーは直接にMaven中央倉庫にダウンロードしに行きます。ここではもう詳しく説明しません。
送信
簡単なメール
簡単なテキストを送るだけなら、発送方法は比較的簡単です。全体のプロセスは次のように分けられます。
第一歩:SMTPメールサーバを構成する基本環境
複雑なメールを送ります。第一歩と第三歩も同じです。第二段階だけメールを作成するのは面倒くさいです。その後、友達に一つの図面と添付ファイルを送るメールを見せます。複雑なメールを送るには、まず三つの概念を熟知しなければならない。
1.MimeMessage:クラスはMIMEタイプとヘッダを理解できる電子メールメッセージである。
2.MimeMultiiPad:このクラスは、メールの異なる部分の内容を追加、削除、取得する方法を定義しています。
3.MimeBodyPart:オブジェクトの内容の一部を表します。各MimeBodyPartには、2つの部分があると考えられている。MIMEタイプとこのタイプにマッチするコンテンツ。
完全なメール生成プロセスは、以下の通りである。
締め括りをつける
以上は小编が绍介したSpringBootの中でQQメールの机能の実现コードを発送して、みんなに対して助けがあることを望んで、もしみんなはいかなる疑问があるならばメッセージを下さい、小编は直ちにみんなのに返答します。ここでも私たちのサイトを応援してくれてありがとうございます。
メールを送るのもありふれた問題です。コードは簡単ですが、多くの子供たちは過程をよく理解していないので、子供たちとこの話をするつもりです。
メールプロトコル
私たちはよくSMTP、POP 3、IMAPなどの様々なメールプロトコルを耳にしますが、これらのプロトコルはどのような役割を果たしていますか?まずこの問題について討論しましょう。
SMTPはTCP/IPベースのアプリケーション層プロトコルであり、江湖の位置はHTTPに似ています。SMTPサーバのデフォルトの傍受ポート番号は25です。ここを見て、SMTPプロトコルがTCP/IPベースのアプリケーション層プロトコルである以上、私もソケットを通してメールを送ることができるのではないかと思います。答えは肯定です。
生活の中でメールを送るには、次のような手順があります。
1.深センの王さんはまずメールを深センの郵便局に送ります。
2.深センの郵便局は上海の郵便局にメールを送ります。
3.上海の張さんは郵便局に来てメールを取ります。
これは縮小版の生活の中でメールを送る過程です。これらの3つのステップは、それぞれ私たちのメール送信プロセスに対応してもよく、[email protected]から[email protected]にメールが送信されると仮定する。
[email protected]は、まずメールをテンセントのメールサーバに送ります。
2.騰訊のメールサーバーは私達のメールを網易のメールサーバーに送ります。
[email protected]は網易のメールサーバーに登録してメールを見ます。
メール便は大体この過程です。この過程は複数の協議に関連しています。別々に見てみます。
SMTPプロトコルは全部Simple Mail Transfer Protocolと呼ばれ、簡単なメール転送プロトコルと訳され、SMTPサーバ間のメールクライアントソフトウェアとSMTPサーバ間の通信ルールを定義しています。つまり[email protected]ユーザが先にメールをテンセントのSMTPサーバに送る過程はSMTPプロトコルを使って、テンセントのSMTPサーバが網易のSMTPサーバにメールを送る過程も依然としてSMTPプロトコルを使っています。SMTPサーバはメールを受信するために用いられます。POP 3プロトコルはすべてPost Office Protocolと呼ばれ、郵便局プロトコルと訳されています。メールクライアントとPOP 3サーバとの間の通信ルールを定義していますが、このプロトコルはどの場面で使われますか?網易のSMTPサーバにメールが到着した後、[email protected]ユーザはサーバに登録してメールを確認する必要があります。このとき、このプロトコルは使用されます。メールサービスプロバイダは各ユーザに専用のメールストア空間を提供します。SMTPサーバはメールを受信した後、メールを該当ユーザのメールストア空間に保存します。メールサービスのPOP 3メールサーバーで完成する必要があります。最後に、IMAPプロトコルを聞いたことがある仲間もいるかもしれません。このプロトコルはPOP 3プロトコルに対する拡張であり、機能がより強く、作用が似ています。ここでは説明を省略します。
QQメールを送る準備作業
まず私たちはQQメールのページに登録して、上の設定ボタンをクリックします。
アカウントのタブをクリックします。
アカウントのタブでPOP 3/SMTPを開くオプションを見つけました。
クリックしてオープンし、関連機能をオンにします。オープンプロセスは携帯電話番号の検証が必要です。手順に従って操作すればいいです。詳細は説明しません。オープンに成功したら、認証コードを取得して、この番号を保存して、後で使用します。
そして、JavaxMailというjarカバンが必要です。パートナーは直接にMaven中央倉庫にダウンロードしに行きます。ここではもう詳しく説明しません。
送信
簡単なメール
簡単なテキストを送るだけなら、発送方法は比較的簡単です。全体のプロセスは次のように分けられます。
第一歩:SMTPメールサーバを構成する基本環境
Properties properties = new Properties();
properties.setProperty("mail.host", "smtp.qq.com");
properties.setProperty("mail.transport.protocol", "smtp");
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(properties);
session.setDebug(true);
ステップ2:メールを作成する
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.addRecipients(Message.RecipientType.TO, "[email protected]");//
mimeMessage.addRecipients(Message.RecipientType.CC, "[email protected]");//
mimeMessage.setFrom("[email protected]");//
mimeMessage.setSubject(" ");//
mimeMessage.setContent("Hello, ", "text/html;charset=utf-8");//
ステップ3:メール送信
Transport transport = session.getTransport();
transport.connect("smtp.qq.com", "[email protected]", " ");
transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients());// ,
transport.close();
複雑なメール複雑なメールを送ります。第一歩と第三歩も同じです。第二段階だけメールを作成するのは面倒くさいです。その後、友達に一つの図面と添付ファイルを送るメールを見せます。複雑なメールを送るには、まず三つの概念を熟知しなければならない。
1.MimeMessage:クラスはMIMEタイプとヘッダを理解できる電子メールメッセージである。
2.MimeMultiiPad:このクラスは、メールの異なる部分の内容を追加、削除、取得する方法を定義しています。
3.MimeBodyPart:オブジェクトの内容の一部を表します。各MimeBodyPartには、2つの部分があると考えられている。MIMEタイプとこのタイプにマッチするコンテンツ。
完全なメール生成プロセスは、以下の通りである。
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.addRecipients(Message.RecipientType.TO, "[email protected]");//
mimeMessage.addRecipients(Message.RecipientType.CC, "[email protected]");//
mimeMessage.setFrom("[email protected]");//
mimeMessage.setSubject(" ");//
MimeMultipart mixed = new MimeMultipart("mixed");
mimeMessage.setContent(mixed);// MIME
MimeBodyPart attach1 = new MimeBodyPart();// 1
MimeBodyPart attach2 = new MimeBodyPart();// 2
MimeBodyPart content = new MimeBodyPart();//
mixed.addBodyPart(attach1);// MIME
mixed.addBodyPart(attach2);// MIME
mixed.addBodyPart(content);//
FileDataSource fds1 = new FileDataSource(new File("C:\\Users\\sang\\Desktop\\1.png"));//
DataHandler dh1 = new DataHandler(fds1);//
attach1.setDataHandler(dh1);//
attach1.setFileName("1.png");//
// ,
FileDataSource fds2 = new FileDataSource(new File("C:\\Users\\sang\\Desktop\\ .xlsx"));
DataHandler dh2 = new DataHandler(fds2);
attach2.setDataHandler(dh2);
attach2.setFileName(MimeUtility.encodeText(" .xlsx"));// , , MimeUtility encodeText ,
MimeMultipart bodyMimeMultipart = new MimeMultipart("related");// MIME
content.setContent(bodyMimeMultipart);// bodyMimeMultipart
MimeBodyPart bodyPart = new MimeBodyPart();// HTML
bodyPart.setContent("<h1>Hello , <img src='cid:2.png'/></h1>","text/html;charset=utf-8");
MimeBodyPart picPart = new MimeBodyPart();//
DataHandler dataHandler = new DataHandler(new FileDataSource("C:\\Users\\sang\\Desktop\\2.png"));
picPart.setDataHandler(dataHandler);
picPart.setContentID("2.png");
// HTML bodyMimeMultipart
bodyMimeMultipart.addBodyPart(bodyPart);
bodyMimeMultipart.addBodyPart(picPart);
mimeMessage.saveChanges();
OKです。Java MailがQQメールを送るのはこんなに簡単です。他のものは163、sinaなどです。書き方は似ています。ここでは詳しく説明しません。締め括りをつける
以上は小编が绍介したSpringBootの中でQQメールの机能の実现コードを発送して、みんなに対して助けがあることを望んで、もしみんなはいかなる疑问があるならばメッセージを下さい、小编は直ちにみんなのに返答します。ここでも私たちのサイトを応援してくれてありがとうございます。