Ip Adresini Mail Olarak Gönderme

Ekleme:

Google güvenlik sebeplerinden ötürü smtp kullanımına sınırlama getirdiği için bu yöntem artık çalışmıyor.

Ancak paylaştığım cmd kodunda problem olmadığı için, kodu başka bir smtp servis sağlayıcı ile kullanmak isterseniz diye kodu ve konuyu kaldırmıyorum. Dolayısı ile aşağıdaki yöntem güncelliğini kaybetmiştir. Saygılarımla.

 

 

Merhabalar,

Bu yazımda public mail adresimizi mail olarak nasıl göndeririz konusunu anlatacağım.

Böyle bir ihtiyaç neden doğar?

Bir sistemciyseniz ve müşterilerinizden bazısı sabit ip almamakta ısrar ediyorsa,

Evinize sabit ip tanımlatmadıysanız ve ara ara evdeki açık bilgisayarınıza bağlanmanız gerekiyorsa,

Teamviwer, Anydesk, Alpemix gibi uygulamalar yerine Windows Remote Desktop kullanmak istiyorsanız ya da kendinize has bir probleminiz var ve böyle bir çözüm arıyorsanız umarım bu yazının size faydası olacaktır.

Öncelikle bu işlem Windows platformunda çalışıyor ve sadece Windows 10’da test edildi. Diğer sürümlerde vereceği sonuçtan emin değilim.

Şimdi ihtiyaçlar neler onlara bakalım.

  1. Bir adet gmail hesabı. Sadece ip gönderme için kullanılacak.
  2.  Windows Görev Zamanlayıcı. IP adresini belirttiğiniz aralıklarla göndermek için. Şimdi adım adım ilerleyelim.

 

1.Adım:

Gmail adresimizi açıyoruz. Hali hazırda kullandığınız bir adres varsa siz bilirsiniz. Ancak ben sadece ip göndermek için ayrı bir adres açmanızı tavsiye ederim. Çünkü mail gönderimi yapacak bat dosyası içinne Gmail şifrenizi açık halde yazmanız gerekecek. Şahsi mailinizi kullanırsanız mail güvenliğinizi riske atmış olursunuz.

Diğer adımlarda oluşturacağımız bat dosyası Gmail için 3. parti bir uygulama niteliğinde olacağı için güvenlik sorunu oluşturup mail alış verişini kapatacaktır. Bu engeli aşmak için Gmail ayarlarından “daha az güvenli uygulama erişimi”ne izin vermeniz gerekmektedir.

Önce yazarak ifade edeyim sonra görselleri ekleyeceğim.

Gmail’de oturum açtıktan sonra profilimizden “Google Hesabınızı Yönetin”i seçiyoruz.

Açılan sayfada “Güvenlik” sekmesine tıklıyoruz.

Sayfayı aşağı çekince “Daha az güvenli uygulama erişimi” alanına geliyoruz ve “Kapalı” ise “Açık” hale getiriyoruz. Resimli ifadeleri şöyle:

************************************************************************************************************************

************************************************************************************************************************

************************************************************************************************************************

Gmail ayarları bu kadar. Şimdi gereken bat dosyasını hazırlayalım.

 

2.Adım:

Masaüstünde (veya dilediğiniz yerde) boş bir yere sağ tıklayın, “yeni” sekmesinden “metin belgesi”ni seçip yeni bir boş metin belgesi oluşturun.

Sonra o belgeye aşağıdaki script kodu yazın. Aşağıdaki kodu okuyup kendinize göre düzenleyin..

@ECHO OFF

for /f "tokens=1* delims=: " %%A in (
  'nslookup myip.opendns.com. resolver1.opendns.com 2^>NUL^|find "Address:"'
) Do set ExtIP=%%B

SET GmailAccount="BURAYA MAİLİ GÖNEDERECEK GMAİL ADRESİNİ YAZ"
SET GmailPassword="BURAYA GMAİL ADRESİNİN ŞİFRESİNİ YAZ"
CALL :PowerShell
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%' '%GmailAccount%' '%GmailPassword%'"
EXIT

:PowerShell
SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
SET PSScript=%temp%\~tmpSendeMail.ps1
IF EXIST "%PSScript%" DEL /Q /F "%PSScript%"

ECHO $Username      = $args[0]>> "%PSScript%"
ECHO $EmailPassword = $args[1]>> "%PSScript%"
ECHO                          >> "%PSScript%"
ECHO $Username    = $Username                 >> "%PSScript%"
ECHO $EmailTo     = "BURAYA MAİL KİME GİDECEK ONU YAZ" >> "%PSScript%"
ECHO $EmailFrom   = "$Username" >> "%PSScript%"
ECHO $Subject     = "Public IP"           >> "%PSScript%"
ECHO $Body        = "%ExtIP%"              >> "%PSScript%"
ECHO $SMTPServer  = "smtp.gmail.com"          >> "%PSScript%"
ECHO $SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body) >> "%PSScript%"
ECHO $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)                               >> "%PSScript%"
ECHO $SMTPClient.EnableSsl = $true                                                                >> "%PSScript%"
ECHO $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $EmailPassword) >> "%PSScript%"
ECHO $SMTPClient.Send($SMTPMessage)                                                               >> "%PSScript%"
GOTO :EOF

Kodu yazıp kaydedin. Daha sonra bu metin belgesinin uzantısında yazan “txt”yi “bat” olarak değiştirin. Uzantı olarak bir şey göremiyorsanız klasörde görünüm ayarlarından “Dosya adı uzantıları”nı aktif edin (aşağıdaki gibi). not: resimde yanlışlıkla “Gizli ögeler”i kutucuk içine almışım. Aslında aktif etmeniz gereken “Dosya adı uzantıları” olacak. “Gizli ögeler”in hemen üzerinde.

Oluşturduğunuz belgeye şimdi sağ tıklayın ve txt’yi silip bat yazın ve “emin misiniz?” sorusuna evet diyerek işlemi bitirin.

Şu andan itibaren mail ile ip gönderme dosyanız hazır. Çift tıklayıp çalıştırın. Ip’yi manuel olarak göndermiş olursunuz. Gmail’i kontrol ettiğinizde Public Ip’nizi mailinizde gelen kutusunda görürsünüz. Gelen kutunuzda şu şekilde görünür:

Şimdi önemli bir noktaya geldik. Ip’yi bu şekilde gönderme amacımız uzaktaki sistemde değişen ip adresimizi öğrenmekti. Biz az önce bunu manuel olarak yaptık. Bunu otomatiğe çevirip uzak sistemin kendi kendine bu mail adresine belirli aralıklarla ip adresi göndermesini sağlayacağız. Çünkü elektrik kesintisi veya modem resetlenmesi gibi sebeplerle bu ip adresi değişmektedir.

Bu otomatikleştirmeyi “Windows Görev Zamanlayıcı” ile yapacağız. Bunu da sonraki adımda anlatalım.

 

3.Adım:

 

Windows başlat menüsünde “görev zamanlayıcı” yazıp uygulamayı açalım.

Açılan pencerede “Görev Zamanlayıcısı (Yerel)”e sağ tıklayıp “Görev Oluştur”u seçelim.

 

 

Genel sekmesinde göreve ad ve isteğe bağlı olarak açıklama girin.

Kullanıcı oturum açmışsa da açmamışsa da çalışır seçeneğini seçin.

En yüksek ayrıcalıkta çalıştır seçeneğini seçin.

Gizlilik konusu size kalmış. Resimli gösterimi aşağıdadır:

 

Şimdi tetikleyiciler sekmesinde Ip gönderme işlemini 5 dakikada bir, süre sonu olmadan (biz iptal edene kadar) ve oturum açılmışsa da açılmamışsa da çalışacak şekilde ayarlayalım. Aşağıdaki seçenekleri kendinize göre uygulayabilirsiniz.

 

 

Eylemler sekmesinden ne yapılacağını seçelim. Gözat butonundan oluşturduğumuz “.bat” uzantılı script dosyasını seçelim.

Koşullar sekmesindeki alanları aşağıdaki resime göre değiştirelim:

Ayarlar sekmesindeki seçenekleri aşağıdaki resime göre düzenleyelim:

Tamam dediğimizde kullanıcı şifremiz varsa sorar. Yoksa eğer sisteminizde bir şifre belirleyip onu girin ve tamam diyin:

Bu aşamadan sonra Görev Zamanlayıcı otomatik olarak 5 dakikada bir bat dosyasını çalıştıracak ve belirttiğiniz Gmail adresine Public Ip’nizi gönderecektir.

Aşağıdaki resimde scriptin çalıştığını ve 5 dakikada bir ip gönderdiğini görebiliriz:

Son olarak muhtemel bir kaç soruya cevap vereyim.

Elektrik gidince pc kapalı olacak. uzak pc nasıl açılır? Açık olmayan pc’de ip gönderemeyiz ki?

Uzak pc için biostan otomatik açılış ayarlayabiliriz. Her bios desteklemez ama güncel biosların çoğunda vardır. Başka da bir yazının konusudur. Bu mail ile ip gönderme işlemi  “kapanma riski az olan” veya “güç kaynağı kullanan” sistemlerde daha çok işe yarar.

Ayrıca uzak sistemdeki public ip’yi öğrenme konusunda modemden yapılabilecek ip ayarları da vardır. Bunlar da birer çözüm yoludur ancak bu yazımda ek program olmadan, modemle veya harici site ile uğraşmadan, sadece bat dosyası ile ip göndermeyi anlatmak istedim (remote desktop için modeme illa ki müdahale edeceğiz port yönledirme için bu ayrı mesele).

 

Saygılarımla.