2013-07-05 3 views
0

Я создал ContactUS форму, благодаря которой пользователи могут ввести следующие значения:Не удалось подключиться к SMTP хост: smtp.live.com, порт: 25

Email 
    Name 
    Subject 
    Message 

Используя следующий код:
http://www.roseindia.net/mail/sending-an-email-in-jsp.shtml

При нажатии кнопки отправки письмо должно быть отправлено на 1-2 идентификатора электронной почты домена моей компании. Пользователи могут вводить любой адрес электронной почты из любого домена и отправлять его на адрес электронной почты домена моей компании (1-2).

I'm using the following 2 libraries, activation.jar and mail.jar 

В этом случае соединение с сервером должно быть создано под портом 25?
Для этого я предоставляю здесь «stacktrace». Он показывает следующую ошибку:

Could not connect to SMTP host: smtp.live.com, port: 25 

Какая ошибка, следует ли написать что-то еще вместо live.com?
Имя домена должно быть написано здесь, например, [email protected], поэтому хост должен быть smtp.xyz.edu.in?
Пожалуйста, объясните мне, что это за ошибка?

StackTrace:

org.apache.catalina.util.LifecycleBase start 
    INFO: The start() method was called on component 
      [StandardEngine[Catalina].StandardHost 
    [localhost].StandardContext[/WebApplicationAskAQuestion6]] after start() had 
    already been called. The second call will be ignored. 
    javax.mail.MessagingException: Could not connect to SMTP host: 10.10.10.34, port: 465; 
    nested exception is: 
java.net.ConnectException: Connection timed out: connect 
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961) 
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654) 
at javax.mail.Service.connect(Service.java:295) 
at org.apache.jsp.mail_jsp._jspService(mail_jsp.java:81) 
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.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:472) 
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:1008) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852) 
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:722) 
    Caused by: java.net.ConnectException: Connection timed out: connect 
at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69) 
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) 
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) 
at java.net.Socket.connect(Socket.java:579) 
at java.net.Socket.connect(Socket.java:528) 
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:321) 
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:237) 
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927) 
... 25 more 
+0

Выполнение «telnet smtp.live.com 25 ", он показывает следующее:« 220 BLU0-SMTP214.phx.gbl »Microsoft ESMTP MAIL Service, Версия: 6.0.3790.4675 re ady в Чт, 4 июля 2013 г. 22:00:13 -0700« Что это значит? –

+0

код, который я использую: http://www.roseindia.net/mail/sending-an-email-in-jsp.shtml –

+0

Это сообщение является стандартным ответом от почтового сервера Microsoft. Это означает, что с компьютера вы используете, у вас есть доступ к smtp.live.com на порт 25. Если ваш код работает на компьютере где-то еще, у него может не быть такого доступа. –

ответ

1

ОШИБКА: Не удалось подключиться к SMTP хост: smtp.live.com, порт: 25

Эта ошибка соединения SMTP была решена мною для GMAIL и Yahoo хостов, добавив:

// использовал «smtps», и он работал :) transport = mailSession.getTransport («smtps»);

// порт 465 работал для аутентификации, и он решил с помощью gmail, yahoo hosts transport.connect («smtp.gmail.com», 465, «myid», «password»);

Итак, это окончательный ответ.

3

Можете ли вы телнет порт 25 на smtp.live.com? [Вы получаете SMTP приветственное сообщение?]

telnet smtp.live.com 25 

NO => Ваши исходящие соединения SMTP может быть заблокирован брандмауэром.

Fix
Отправить по электронной почте через submission port (587) в smtp.live.com.
Он также принимает SMTP-соединения/представления, но менее вероятно, что он будет заблокирован.

transport.connect("smtp.live.com",587,null,null); 

Объяснение
Исходящее подключение к порту 25 часто блокируются как исходящие меры по предотвращению спама.

+0

«telnet smtp.live.com 587» и «telnet smtp.live.com 25» показывает «» 220 BLU0-SMTP214.phx.gbl Служба Microsoft ESMTP MAIL, версия: 6.0.3790.4675 re ady в Thu, 4 июля 2013 г. 22:00:13 -0700 –

+0

Но когда я проверяю порт 25, 587, 465 на «canyouseeme.org», он показывает их как заблокированные. Что делать сейчас ? –

0

This JavaMail FAQ entry может помочь.

Q: How do I access Hotmail (Windows Live mail) with JavaMail?

A: JavaMail is capable of sending and reading messages using Hotmail. All that's required is to properly configure JavaMail. I'll illustrate the proper configuration using the demo programs that come with JavaMail - msgshow.java and smtpsend.java .

Let's assume your Hotmail username is "[email protected]" and your password is "passwd".

To read mail from your Hotmail Inbox, invoke msgshow as follows:

java msgshow -D -T pop3s -H pop3.live.com -U [email protected] -P passwd

By reading the msgshow.java source code, you can see how these command line arguments are used in the JavaMail API. You should first try using msgshow as shown above, and once that's working move on to writing and configuring your own program to use Hotmail. The code fragment shown above for connecting to Gmail will also work for connecting to Hotmail by simply changing the host name.

To send a message through Hotmail, invoke smtpsend as follows:

java -Dmail.smtp.starttls.enable=true -Dmail.smtp.port=587 
    smtpsend -d -A -M smtp.live.com 
    -U [email protected] -P passwd [email protected]

(Note that I split the command over three lines for display, but you should type it on one line.)

The smtpsend program uses the System properties when creating the JavaMail Session, so the properties set on the command line will be available to the JavaMail Session.

The smtpsend program will prompt for a subject and message body text. End the message body with ^D on UNIX or ^Z on Windows.

Again, you can read the smtpsend.java source code to see how the command line arguments are used in the JavaMail API. The code fragment shown above for connecting to Gmail will also work for connecting to Hotmail by simply changing the host name and changing the connect call to t.connect(host, 587, username, password) . There is, of course, more than one way to use the JavaMail API to accomplish the same goal. This should help you understand the essential configuration parameters necessary to use Hotmail.

+0

Теперь письмо отправляется в gmail, yahoo id из моего идентификатора gmail с портом 465. Но я вхожу в свое имя пользователя gmail и passowrd в код для аутентификации. Я хочу избежать этой вещи по понятным причинам. В основном я хочу создать простую форму для связи с нами. Форма с кнопкой отправки с именем, электронной почтой, темой и сообщением. Почтовый адрес здесь может быть любым, и он отправляет запрос на внешний вид. Так как я могу избежать, чтобы закодировать его таким образом, что пользователю не нужно вводить свой пароль при отправке электронной почты на мой идентификатор gmail. –

+0

Это ваше приложение, которое отправляет электронное письмо. Вам необходимо использовать адрес электронной почты, связанный с вашим приложением. Если ваша компания запускает собственный почтовый сервер или заключает контракты с поставщиком услуг Интернета для этой службы, вы должны использовать идентификатор электронной почты на этом сервере вместо Gmail. –

+0

ok @BillShannon, они сказали мне просто ввести «ipaddress» без аутентификации ... будет ли работать без аутентификации, если они используют Windows, и я должен добавить те библиотеки в папку WEB-INF (uisng netbeans IDE). Они размещали сайт под APache Tomcat srver –

Смежные вопросы