簡體   English   中英

無法通過centos VPS上的谷歌smtp發送電子郵件

[英]Unable to send email via google smtp on centos VPS

我想通過谷歌SMTP發送電子郵件。

代碼在tomcat中的本地Windows PC中運行良好。 但我在我的centos VPS上遇到了這個錯誤

org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.googlemail.com:465 

這是代碼,請檢查 -

// Create the email message
HtmlEmail email = new HtmlEmail();

email.setHostName("smtp.googlemail.com");
email.setSmtpPort(465);
email.setAuthenticator(new DefaultAuthenticator("username", "password"));
email.setSSLOnConnect(true);

email.addTo(e_mail, f_name+" "+l_name);
email.setFrom("me@gmail.com", "something.com - Account activation");
email.setSubject("something.com - Account activation email");

  // embed the image and get the content id
URL url = new URL("http://something.com/out.php/i6964_logo-email.gif");
String cid = email.embed(url, "BizzKiss logo");

  // set the html message
email.setHtmlMsg("<html><body>Something</body></html>");

  // set the alternative message
email.setTextMsg("Your email client does not support HTML messages");
email.setTLS(true);
  // send the email
email.send();

out.println("Email sent to "+e_mail+"<br/>Please check your email for activation message.Not found? Please check your spam folder.");



org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.googlemail.com:465
    at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1401)
    at org.apache.commons.mail.Email.send(Email.java:1428)
    at org.apache.jsp.email_jsp._jspService(email_jsp.java:104)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
    at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
    at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)
Caused by: javax.mail.AuthenticationFailedException: 534-5.7.14  Please log in via your web browser and then try again.
534-5.7.14 Learn more at https://support.google.com/mail/bin/answer.py?answer=787
534 5.7.14 54 qf7sm12328634pac.14 - gsmtp

    at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:826)
    at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:761)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685)
    at javax.mail.Service.connect(Service.java:317)
    at javax.mail.Service.connect(Service.java:176)
    at javax.mail.Service.connect(Service.java:125)
    at javax.mail.Transport.send0(Transport.java:194)
    at javax.mail.Transport.send(Transport.java:124)
    at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1391)
    ... 30 more

請檢查堆棧跟蹤,請告訴我有什么問題

即使Gmail帳戶憑據正確無誤,Google仍可能會阻止身份驗證嘗試,懷疑機器人郵件發件人。 要解決此問題,請確保您使用瀏覽器中的相同Gmail帳戶登錄,然后打開以下鏈接並逐步完成驗證過程:

https://accounts.google.com/b/0/DisplayUnlockCaptcha

這將允許訪問您的Gmail帳戶大約10分鍾。 請務必在此時間范圍內嘗試使用您的代碼。

大約半年前,這個技巧對我有所幫助,希望從那時起沒有任何改變。

每當腳本嘗試自動登錄時,Gmail通常會阻止該腳本。 要通過腳本啟用登錄,請執

  1. 請訪問https://security.google.com/settings/security/activity?hl=zh-CN&pli=1
  2. 在登錄列表中,選擇被阻止的一個並包含服務器的IP。
  3. 在“異常”活動下,單擊“更改”並將活動識別為您的活動。

如果您沒有列表中的活動,請轉到https://accounts.google.com/b/0/DisplayUnlockCaptcha ,然后嘗試。

這兩個技巧都為我工作了很多次。

如果使用SMTP,則主機名必須為smtp.gmail.com ,端口號可以是465或587 您的錯誤日志通知您的用戶名或密碼錯誤,因此請確保您的帳戶憑據,然后重試。 請看看這個谷歌郵件客戶端鏈接。

要通過Gmail啟用發送郵件,您必須在Gmail帳戶中停用一些安全選項:請參閱https://support.google.com/accounts/answer/6010255

我掛了這個...確保你將“協議”設置為SMTP + SSL。 否則請按照以下說明操作: https//confluence.jetbrains.com/display/TCD8/Setting+up+Google+Mail+and+Google+Talk+as+Notification+Servers

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM