アリクラウドサーバ25ポート(25ポートが無効になっている問題を解決するために)電子メールを使用する方法のJavaを無効にします

通常、我々はローカルにメールを送信するためにJavaを使用し、通常はその後、問題が発生する可能性があり、問題ではありませんが、サーバーにデプロイ。もちろん、これはまた、オペレータと関係を持っています。例えば、私はコーヒーのホスト上の仮想マシンを購入した後、個人的なウェブサイトのアップを展開しなければならなかった、通常は問題ではなく、それほどの制限ではありません。

しかし、制限が導入口の向きが開いていない場合は、クラウドアリで、より多くの、例えば、それはあなたがサーバーにインストールしたソフトウェアのセクションにつながる可能性があり、そのような一般的に使用されるTomcatのように、使用されません。

ポートが開いて、そして第二にホワイトリストの設定の問題ではないので。

次のようにアリはクラウドサーバのポート25について話をする今日が無効になっていると、メッセージを送信に成功し、それを修正する方法を、最初の完全なコードを投稿:

パッケージcom.blog.springboot.utils。



輸入java.util.Properties; 

輸入javax.mail.Authenticator。

輸入javax.mail.Messageの。

輸入javax.mail.MessagingException。

輸入javax.mail.PasswordAuthentication。

インポートのjavax.mail.Session。

輸入javax.mail.Transport。

輸入javax.mail.internet.AddressException。

輸入javax.mail.internet.InternetAddress。

輸入javax.mail.internet.MimeMessageの。

輸入javax.mail.internet.MimeMessage.RecipientType。



パブリック クラスMailutilsに{ 





    

    公共の 静的な 無効SENDMAIL(文字列の電子メール、文字列emailMsg)が

            スローAddressException、てMessagingExceptionを{ 

        // 1.创建一个程序与邮件服务器会话对象セッション



        のプロパティの小道具 = 新しいプロパティ(); 

        props.setProperty( "mail.transport.protocol"、 "SMTP" )。

        props.setProperty( "mail.host"、 "smtp.163.com" ); 

        props.setProperty( "mail.smtp.auth"、 "真"); // 指定验证为真

        props.put( "mail.smtp.port"、 "465" ); 

        props.setProperty( "mail.smtp.socketFactory.class"、 "javax.net.ssl.SSLSocketFactory" ); 

        props.setProperty("mail.smtp.socketFactory.fallback"、 "偽" ); 

        props.setProperty( "mail.smtp.socketFactory.port"、 "465" ); 



        // 创建验证器

        認証AUTH = 新しい認証(){ 

            公共たPasswordAuthentication getPasswordAuthentication(){ 

                戻り 、新しい( "[email protected]"、 "テスト"たPasswordAuthenticationを)。

            } 

        }。



        セッションセッション = Session.getInstance(小道具、AUTH)。



        // 2.创建一个メッセージ、它相当于是邮件内容

        メッセージメッセージ = 新しいで、MimeMessage(セッション)。



        メッセージ。新新たInternetAddress( "[email protected]")); // 送信者を設定



        message.setRecipientを(RecipientType.TO、新しい新たInternetAddress(メールで)); // 設定した送信モードと受信

       

/ *         文字列のランダム

        文字列のpasswd = CustomeEncryptionUtil。 bcryptPwd(PWD)* / 

        文字列の内容 = "正常に登録" ; 

        message.setSubject(コンテンツ); 



        message.setContent(emailMsg、 "テキスト/ HTML;のcharset = UTF-8" ); 



        // 3.メールの転送を作成します送信



        Transport.send(メッセージ); 

        

    } 

    

    公共の 静的な 無効メイン(文字列[]引数){ 

        試み{

            MailUtils.sendMail([email protected]」、「あなたは前例のない幸福を得るでしょう私のブログへこんにちは、ようこそ」); 

        } キャッチ(てMessagingException E){ 

            // TODO自動生成catchブロック

            e.printStackTrace(); 

            のSystem.out.println( "失敗" ); 

        } 

    } 

    

    

}

キーは、このコアということです。

      props.put( "mail.smtp.port"、 "465" ); 

      props.setProperty( "mail.smtp.socketFactory.class"、 "javax.net.ssl.SSLSocketFactory" ); 

      props.setProperty( "mail.smtp.socketFactory.fallback"、 "偽" ); 

      props.setProperty( "mail.smtp.socketFactory.port"、 "465");

私は次のようにパッケージの依存関係があるメールを使用します。

<! -发邮件- > 
<依存> 

    <groupIdを> com.sun.mail </ groupIdを> 

    <たartifactId>のjavax.mail </たartifactId> 

    <バージョン> 1.5.2 </ version>の

    <スコープ>提供</スコープ> 

</依存関係>

また、について話あなたはあなたのサーバーを確認する場合は、ポートが利用可能である、(、テスト時間を節約し、効率を改善するために、サーバーに、このような地域を展開所有する)コマンドで使用することができます:

telnetのsmtp.163.com 465

サーバがこの結果を返した場合(一般的に入手可能表される)は以下の通りです。

220.181.12.11をしようと... 

SMTPに接続されています。163 .COM。

エスケープ文字は「^]」

接続は外部ホストによって閉じられました。

なりそうであれば、通常は使用できない表現(通常しようで立ち往生されて、その後、サーバーは再びしようと試みるかもしれないが、それでも役に立ちません):

220.181.12.16をしようと...

 

おすすめ

転載: www.cnblogs.com/youcong/p/11488550.html