Pravim VB.NET web servis koji treba da posalje email na zadatu adresu.
Na Internetu sam nasao kod za slanje email-a medjutim ne mogu da posaljem
email, dobijem poruku o neuspjesnom povezivanju na SMTP server.
Pokusao sam da za SMTP server uzmem mail.google.com a funkciji getCredentials()
sam proslijedio korisnicko ime i lozinku svog gmail naloga.
Probaj da otvoris nalog sa nekog non-web based email klijenta (outlook ili bilo sta drugo)
jer google ima farmu smtp servera sa razlicitim adresama i dinamicki odredjuje preko kojeg ce da salje .
Probao sam da posaljem email sa mail servera svoje firme ali ista situacija.
Da napomenem, slanje je radilo kada bih kod pokrenuo iz interne mreze firme
ali u ovom slucaju taj kod pokrecem na svom laptopu kod kuce.
Prilikom pokusaja slanja dobijem izuzetak sa sljedecom porukom:
Command not implemented. The server response was: 5.5.1 Unrecognized command. v3sm41358343bkz.4
Ispod je moj kod. Za mail server koristim smtp.gmail.com
Code (vbnet):
Dim adresa AsString="" Dim adresa_od AsString= System.Configuration.ConfigurationManager.AppSettings("adresaSalje")
Dim row As DataRow ForEach row In adrese.Rows
adresa = row(0).ToString.Trim
mail.To.Add(adresa) Next
Dim username AsString= System.Configuration.ConfigurationManager.AppSettings("username") Dim password AsString= System.Configuration.ConfigurationManager.AppSettings("password")
Dim mail_server AsString= System.Configuration.ConfigurationManager.AppSettings("mailServer") Dim smtp AsNew SmtpClient(mail_server, 587)
smtp.EnableSsl=True
smtp.UseDefaultCredentials=False
Sada je izuzetak sa porukom "Timeout expired".
Kada pokrenem debug metode servis nakon komande send() duze vrijeme pokusava da
posalje email nakon cega dobijem navedeni izuzetak. Klasa SmtpClient ima "TimeOut" svojstvo
koje je podeseno na default-nu vrijednost (100 sekundi). Svojstvo sam postavljao i na vece vrijednosti
ali bih opet dobio isti izuzetak.
Ja imam isti problem, gledao sam neka resenja po netu i kazu da je problem u IIS-u. Na Desktop racunaru mi ne radi a na laptopu radi isti kod. Ista mreza. Mislim da i ti i ja treba da prochackamo IIS. Jesi li instalirao IIS naknadno nakon Operativnog Sistema?
- Postoji mogućnost da slanje email-a blokira firewall ili antivirus!
- Takođe proverite da li ste u okviru gmail naloga omogućili POP pristup. (gmail- Settings- Forwarding and POP/IMAP)
Naravno da su ovdje domena, sifra , izmijenjeni , ovaj kod radi izvrsno sa stranice , iz web aplikacije dok iz desktop aplikacije neće i prijavio ::
Failure sending mail.Meni ne odgovara da koristim google ili bilo čije , nego da email ide sa mog servera.I da li je ovo uopšte moguće , poslati email sa desktopo aplikacijom koristeći smtp postavke servera na kom imam web prostor .Hvala
A da uguraše me u ovaj vb ,ali koristim c# , ali nije problem ako neko može d a pomogne bilo kako ...
Ma, ja sam ti dao ovu temu kao primer, imas ih jos, samo kucaj u pretragu email i klikni ovog foruma.
A VB i C# ti se razlikuju po sintaksi ali je princip sasvim isti.
SMTP server ti svakako treba a ako hoces da bude na tvom racunaru instliraj neki besplatni. Druga mogucnost postoji a to je da u svoju aplikaciju integrises mogucnosti smtp servera (tj. prakticno napravis taj server) ali ti je to daleko komplikovanije.
Potpis
Neznalica_sa_ugla: [code]
Meni ne odgovara da koristim google ili bilo čije , nego da email ide sa mog servera.I da li je ovo uopšte moguće , poslati email sa desktopo aplikacijom koristeći smtp postavke servera na kom imam web prostor .Hvala
Razmisli, ako vec preko desktop aplikacije mozes da saljes poruke koristeci Google SMTP server, zasto ne bi bio u mogucnosti da isto to uradis koristeci drugi server (u ovom slucaju tvoj Hosting SMTP server)?
Pa ako hoces sa svog, onda instaliraj sebi, kao sto sam ti i rekao. Ako hoces da ti aplikacija radi i kao smtp server, jbg, onda uci smtp protokol pa pravi.
Potpis
System.Net.Mail.SmtpException: Failure sending mail. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 70.87.29.134:25
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- End of inner exception stack trace ---
at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6, Int32 timeout)
at System.Net.PooledStream.Activate(Object owningObject, Boolean async, Int32 timeout, GeneralAsyncDelegate asyncCallback)
at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback)
at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout)
at System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port)
at System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port)
at System.Net.Mail.SmtpClient.GetConnection()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
--- End of inner exception stack trace ---
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at WindowsApplication1.Email.button1_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)