How to interpret this particular SMTP response by AOL? - smtp

Connect to AOL's mail server:
telnet mailin-01.mx.aol.com 25
You receive:
554- (RTR:DU) https://postmaster.aol.com/error-codes#554rtrdu
554 Connecting IP: 82.xxx.xxx.xxx
Connection to host lost.
Interestingly, the line breaks after the first two lines are <CR><CR><LF>. This is not visible in the telnet output. I determined this using a C# program that prints the bytes.
This appears to be invalid SMTP behavior. Is it? How to deal with that when writing an SMTP client?
(I understand the reason for the error code. The question is not about that but about the apparent protocol violation.)

Related

Telnet doesn't keep its connection

I've installed XAMPP on windows 10 using "xampp-win32-7.1.12-0-VC14-installer". MySQL/MariaDB Server works and "http://localhost/phpmyadmin" is reachable, but:
(1) when calling "telnet -l root localhost or [ip] 3306", this message is gotten "Y
5.5.5-10.1.29-MariaDB[>bSW>o?áabI),DO#4"L9mysql_native_password". And after some seconds the message "Verbindung zu Host verloren" [lost connection to host].
(2) when calling "http://localhost:3306[/test]", browser Edge produces the following text
"Y 5.5.5-10.1.29-MariaDBy^LBEs7Sÿ÷? }?]9D,Jqy0~Mmysql_native_password!ÿ„#08S01Got packets out of order"
and Chrome this text "This page isn’t working, localhost sent an invalid response. ERR_INVALID_HTTP_RESPONSE"
It shows the version 10.1.29-MariaDB, when a MySQL client is called.
Windows firewall doesn't block any connection to port 3306 (logging file is checked).
In comparison with HTTP Server I think MySQL Server isn't completely set up. Any ideas to fix these two problems. Thank you.

OBIEE Agent to send mail doesn't mail

I am trying to set up via an OBIEE agent. I did the configuration of the smtp server in the EM and tested it via telnet. So this should be okay, but if I am running my agent I get this:
Eventually succeeded, but encountered and resolved errors...
Number of skipped deliveries: 2 of 3
AgentID: /users/weblogic/testagent
[nQSError: 75027] Failed to open connection to SMTP Server (host localhost; port 25).
It says 'localhost' and I don't get why it doesn't connect to my mailserver. What can I do to solve this?
Thanks!
My instanceconfig.xml:
<Alerts>
<ScheduleServer ssl="false">localhost:9705</ScheduleServer>
<OfflinePresentationServicesURL>http://10.232.18.95:9704/analytics/saw.dll</OfflinePresentationServicesURL>
</Alerts>
<ActionFramework>
<WorkflowServer>http://10.232.18.95:9704</WorkflowServer>
<WorkflowService>ANALYTICS</WorkflowService>
<WorkflowSystem>obiaftests</WorkflowSystem>
</ActionFramework>
My schedulerconfig.xml:
<From>Oracle Delivers</From>
<SMTP_Port>25</SMTP_Port>
<SMTP_Server>localhost</SMTP_Server>
<Sender>no-reply#oracle.com</Sender>
There are three steps in doing this:
configuring the SMTP server in Oracle EM
creating an agent in OBIEE
amending the schedulerconfig.xml file (located at OBI_HOME/user_projects/domains/bi/config/fmwconfig/biconfig/OBISCH)
I didn't do step 3 so OBIEE was trying to send over localhost. You should put the same server in here as configured in the EM.

Swiftmailer Gmail Connection timed out #110

I want to send emails using gmail's smtp with the PHP script posted below using Swiftmailer. Now this works fine on my own webserver. But when I used it on the webserver of the people I'm creating this for, I get an exception:
Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host smtp.gmail.com [Connection timed out #110]' in ...
What could be the problem?
I'm assuming its got to do with the difference in server settings, because the code works on my own webserver. I've checked with phpinfo() the following:
- Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
- OpenSSL support enabled
- OpenSSL Library Version OpenSSL 1.0.1e-fips 11 Feb 2013
This is my PHP code:
$emailname = MY_GMAIL_ACCOUNT_USERNAME;
$emailpass = MY_GMAIL_ACCOUNT_PASSWORD;
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl")
->setUsername($emailname)
->setPassword($emailpass);
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance($emailtitle)
->setFrom(array($emailname.'#gmail.com' => $emailsender))
->setTo(array($emailrecp))
->setBody($emailbody,'text/html');
$result = $mailer->send($message);
I had the same issue on a Digital Ocean server. Turns out they're blocking SMTP by default on IPv6. Here's the fix:
nano /etc/gai.conf
precedence ::ffff:0:0/96 100
as per:
https://www.digitalocean.com/community/questions/outgoing-connections-on-port-25-587-143-blocked-over-ipv6
My easy solution to avoid the problem of dynamic IP (every time i ping smtp.gmail.com I see a slight difference in the last 3digit chunk), is to simply use php built-in gethostbyname() to read the IP in real-time.
$smtp_host_ip = gethostbyname('smtp.gmail.com');
$transport = Swift_SmtpTransport::newInstance($smtp_host_ip,465,'ssl')
->setUsername('username')->setPassword('pwd');
Im not advanced in php and streams but it seems that IPv6 DNS resolution depends on the router and/or ISPs. I changed my provider, got a new router and the smtp connection always timed out.
To use IPv6 you should either add your own IPv6 or force stream_context_create to use IPv4. You can call setSourceIp() on a swiftmailer object or directly change the Swift_SmtpTransport class (i.e. in the constructor).
Use IPv6:
// replace IP with your own IPv6
$this->setSourceIp('2aaa:8a8:fc0:230:fds:4fd:faa:24ae');
Use IPv4 (mentioned at https://github.com/phergie/phergie/issues/195):
$this->setSourceIp('0.0.0.0');
just add
74.125.130.108 smtp.gmail.com
to server's hosts file
I've just been doing battle with exactly the same problem. Mine worked locally too, but as soon as it got on a real server ... no. It just would not work even though all the settings were the same.
After many hours, I've think I've found out why.
What seems to happen is that on a server with IPv4 and IPv6 support, IPv6 takes precedence. Which makes sense, given that it's newer. But in the case of smtp.gmail.com, it appears to only listen on IPv4. So when the server resolved smtp.gmail.com, it got its IPv6 address back and so PHP tried to connect to it. That eventually gives up with a "Connection timed out" exception. Now you would think that fsockopen, presumably, would detect the connection wasn't working and so try IPv4, but seemingly it doesn't.
If you find out what smtp.gmail.com's IPv4 address is (ping smtp.gmail.com) and simply put that IP in place of the hostname in the code - it works :)
It's not ideal coding in an IP address - given that Google could change it at any minute - but at least you will get some emails sent
The answer for me was that my server was blocking the outbound connection. It could be your firewall or your host.
The way to test this is to try connecting yourself. I used telnet on two different machines to compare and it became obvious that this was my issue. There may be a way to test this with curl directly.

Why does SMTP (and similar protocols) have the QUIT command?

It seems to me that the operation doesn't give any information to any participant. Closing the TCP connection by the client can be detected by the server just as well. And the client doesn't need any kind of acknowledgement after deciding to disconnect from the server and calling QUIT.

Packet is received on TCP level but not able to read

we are using SMPP protocol for sending messages to SMSC.
When SMSC restarted session, client binded it again successfully
But client unable to get/read further pdu like submit_resp, enquire_resp which SMSC has sent.
We have checked tcp dump using wireshark,
it has been found that client receive tcp packet in tcp dump, app not able to read anything,
In app, we have used Logica smpp lib.
we have checked by putting more logs in logica lib, then it is found that Logica lib doesn't get any thing to read from socket.
Please have comment, which can give more detail direction !!
You mentioned that when SMSC restarts,
The client bound again.
The client is not able to read subsequent PDU(s).
Since the question does not give any specific information, I will have to guess what the problem is. I would suggest to check the code for stale com.logica.smpp.Session object(s).