添付ファイルのダウンロードとアップロード、テキストメッセージの送信、電子メールの送信はすべて、プログラムで非常に一般的に使用されています。ファイルのアップロードとダウンロードを記録し、テキストメッセージを送信しました。最近忙しかったので、電子メールの送信機能を行う時間がありませんでした。今、私はついに163のメールボックスでQQメールに電子メールを正常に送信しました。以下は関連するコードです。詳細については、コードのコメントを参照してください。
パッケージテスト; java.util.arraylistをインポートします。 Import Java.util.date; java.util.listをインポートします。 java.util.propertiesをインポートします。 java.util.regex.matcherをインポートします。 java.util.regex.patternをインポートします。 javax.mail.addressをインポートします。 javax.mail.authenticatorをインポートします。 javax.mail.bodypartをインポートします。 javax.mail.messageをインポートします。 javax.mail.passwordauthenticationをインポートします。 javax.mail.sessionをインポートします。 javax.mail.transportをインポートします。 javax.mail.internet.internetaddressをインポートします。 javax.mail.internet.mimebodypartをインポートします。 javax.mail.internet.mimemessageをインポートします。 javax.mail.internet.mimemultipartをインポートします。 com.sun.mail.util.mailsslsocketfactoryをインポートします。 /// */ * // * @author tuzongxun123 // * @description mail send test class // pro.put( "mail.smtp.host"、 "smtp.163.com"); pro.put( "mail.smtp.auth"、 "true"); // SSL暗号化mailsslsocketfactory sf = null; sf = new MailsSlsocketFactory(); //すべてのホストを信頼するSF.setTrustallhosts(true); pro.put( "mail.smtp.ssl.enable"、 "true"); pro.put( "mail.smtp.ssl.socketfactory"、sf); //メールのセッションプロパティに基づいて電子メールを送信するセッションを作成します。ここでは、ユーザー名を接尾辞できないことに注意する必要があります。そうしないと、ユーザー名ではありません。 //ここでのパスワードは、通常のメールボックスのログインパスワードではなく、クライアントMailAuthenticator authorizer = new MailAuthenticator( "tuzongxun123"、 "クライアント認証コード")によって生成された別の特別な認証コードであることにも注意してください。セッションセッション= session.getInstance(pro、authorizer); //セッションメッセージに基づいて電子メール情報を作成します= new Mimemessage(session); //メール送信者アドレスを作成します。 //電子メールメッセージの送信者を設定します。 //受信者のメールアドレスリスト<string> toaddresslist = new ArrayList <>(); toaddresslist.add( "[email protected]"); stringbuffer buffer = new StringBuffer(); if(!toaddresslist.isempty()){string regex = "^([a-z0-9a-z]+[ - | //。]?)+[a-z0-9a-z]@([a-z0-z]@([a-z0-9a-z]+)パターンP = pattern.compile(regex); for(int i = 0; i <toaddresslist.size(); i ++){matcher match = p.matcher(toaddresslist.get(i)); if(match.matches()){buffer.append(toaddresslist.get(i)); if(i <toaddresslist.size() - 1){buffer.append( "、"); }}}}} string toaddress = buffer.toString(); if(!toaddress.isempty()){//メッセージアドレスの受信者アドレスを作成します[] to = internetAddress.parse(toAddress); //電子メール受信者アドレスを設定しますmessage.setRecipients(message.recipientType.to、to); //件名の電子メール// message.setsubject( "Java Mail Test"); message.setsubject( "なぜ間違っているのか"); //電子メールコンテナmimemultipart mimemultipart = new mimemultipart(); // html bodypart bodypart = new MimeBodyPart(); //メールコンテンツ//文字列htmltext = "javaメールテスト111";文字列htmltext = "なぜ間違っているのか"; bodypart.setContent(htmltext、 "text/html; charset = utf-8"); mimemultipart.addbodypart(bodypart); //添付ファイルリスト<string> fileaddresslist = new ArrayList <String>(); fileaddressList .add( "C:// users // tuzongxun123 // desktop // new Microsoft Office Word Document.docx"); if(fileaddresslist!= null){bodypart attachpart = null; for(int i = 0; i <fileaddresslist.size(); i ++){if(!fileaddresslist.get(i).isempty()){attachPart = new MimeBodyPart(); //添付ファイルデータソースDataSource source = new filedatasource(fileaddresslist.get(i)); //添付ファイルデータソースをメールボディAttachPart.setDatahandler(new DataHandler(Source))に追加します。 //添付ファイル名を元のファイルに設定しますadcitionPart.setFileName(mimeutility.encodetext(source .getName())); mimemultipart.addbodypart(attchpart); }}} message.setContent(mimemultipart); message.setsentdate(new date()); //メールメッセージを保存します。SaveChanges(); //電子メールTransport.send(メッセージ)を送信します。 }}} class mailAuthenticator extends authenticator { / *** username* / private string username; / ***パスワード*/プライベート文字列パスワード。 /***新しいインスタンスMailAuthenticatorを作成します。 * * @param username * @param password */ public mailauthenticator(string username、string password){this.username = username; this.password = password; } public string getPassWord(){パスワードを返します。 } @Override Protected PasswordAuthentication getPassWordAuthentication(){return new PasswordAuthentication(username、password); } public string getUsername(){return username; } public void setPassword(string password){this.password = password; } public void setUsername(string username){this.username = username; }}
注:私の同僚は、私のコードを使用して、アカウントとクライアント認証コードに置き換えました。彼はそれを実行するとすぐにエラーを報告しました。その後、彼は電子メールアドレスのクライアント認証コードをリセットすると、エラーが消えました。
上記はこの記事に関するものです。誰もがJavaプログラミングを学ぶことが役立つことを願っています。