Merhabalar, mail gönderme durumuyla stajda uğraştığım projede karşılaştım. Ters bir sonuç olduğunda, uyarı niteliğinde yetkili kişilere mail yollamam gerekiyordu. Python ile kolayca yapılabiliyormuş, ben de sizlerle paylaşmak istedim :)
"smtp" kütüphanesi kullanılarak birkaç satırda hallediliyor. SMTP (simple mail transfer protocol) posta sunucuları arasında e-posta göndermek için kullanılan yaygın bir protokol.
"import smtplib" diyerek smtp modülünü yüklemiş oluyoruz.
Önce, Gmail'in SMTP sunucusuna bağlantı kurulmalı. Bu bağlantı TLS veya SSL biriyle yapılabilir. Bu örnekte, STARTTLS bağlantısı (port 587) kullandık. Son olarak Gmail hesabı kimlik bilgilerini ekledik.
server = smtplib.SMTP( "smtp.gmail.com", 587 )
server.starttls()
server.login( '<gmail_address>', '<gmail_password>' )
server.starttls()
server.login( '<gmail_address>', '<gmail_password>' )
Metin mesajı, mobil taşıyıcıların e-posta avantajlarından yararlanarak gönderiliyor.
Örneğin, T-Mobile numarasına kısa mesaj göndermek için <number>@tmomail.net, AT&T numarasına metin mesajı göndermek için, <number>@mms.att.net biçiminde kullanmalısınız.
Sonra, mesajı ekleyip python dosyasını çalıştırdığımızda mail atmış oluyoruz.
server.sendmail( '<from>', '<number>@tmomail.net', 'Hello!' )
Kolay gelsin :)
Kolay gelsin :)
Çok faydası oldu, kullandım bile. Thanks :)
YanıtlaSilPeki pc de bulanan bi dosyayı yolunu yazarak maile nasıl ekleriz
YanıtlaSilBununla uğraşmamıştım ama şöyle yazınca dediğiniz iş yapılıyor:
YanıtlaSilimport smtplib
server = smtplib.SMTP( "smtp.gmail.com", 587 )
server.starttls()
server.login( 'foo@gmail.com', 'bar' )
file = '/home/deneme.txt'
fo = open(file, "r")
filecontent = fo.read()
server.sendmail( 'asd@gmail.com', '123123123@tmomail.net', filecontent )
deneme.txt içine birşeyler yazıp denedim, sadece smtplib kütüphanesiyle dosyayı kod içinde açıp bu şekilde yollanabiliyor. Ama bu linkte email kütüphanesi de kullanarak daha sağlıklısı yapılmış gibi geldi. http://stackoverflow.com/questions/3362600/how-to-send-email-attachments-with-python
umarım işe yarar.
server.login yaptıgımda hata veriyor
YanıtlaSilserver.login yaptıgımda hata veriyor
YanıtlaSilHata çıktısını paylaşırsanız, yardımcı olmaya çalışırım.
SilBurayada bakabilirsiniz ;)
YanıtlaSilDenedim sıkıntısız çalışıyor
http://www.apkoyun.club/2017/03/python-3x-serisi-mail-gonderme-nasil.html?m=1
peki bir txt dosyası içerisinde yazan mail adreslerine nasıl mail gönderebilirim? şu an kodum böyle ama hata alıyorum.
YanıtlaSil#!/usr/bin/python
import smtplib
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email import encoders
email_user = 'benimmailadresim@gmail.com'
email_password = 'mailşifrem'
email_send = 'mailler.txt'
dosya = open(email_send, 'r')
subject = 'subject'
msg = MIMEMultipart()
msg['From'] = email_user
msg['To'] = email_send
print "Mailinizin konusunu girin: \n"
subject = ''
subject = raw_input(" ")
msg['Subject'] = subject
print "Gondermek istediginiz maili giriniz: \n"
body = ''
body = raw_input(" ")
msg.attach(MIMEText(body,'plain'))
sec = int(raw_input("Gondermek istediginiz dosya varsa 1'e, yoksa 2'ye basin.\n"))
if sec == 1:
print "Gondermek istediginiz dosya adini girin: "
filename=''
filename= raw_input(" ")
attachment =open(filename,'rb')
part = MIMEBase('application','octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition',"attachment; filename= "+filename)
attachment.close()
msg.attach(part)
text = msg.as_string()
server = smtplib.SMTP('smtp.gmail.com',587)
server.starttls()
server.login(email_user,email_password)
server.sendmail(email_user,dosya,text)
dosya.close()
server.quit()
else:
text = msg.as_string()
server = smtplib.SMTP('smtp.gmail.com',587)
server.starttls()
server.login(email_user,email_password)
server.sendmail(email_user,dosya,text)
dosya.close()
server.quit()
Selamlar, kodu deneme firsati bulamadim. ancak ilk aklima gelen cozumu yaziyorum. raw_input ile gondemek istenen maili kullanicidan deger alarak yapmissi, bunun yerine dosyadan okumak icin mesela mails.txt dosyasinda alt alta yazilmis 10 mail olsun.
Silwith open('mails.txt') as f:
lines = f.readlines()
lines in degerini yazdiracak olursan her satirdaki mail adresi, lines arrayi nin bir elemani olmus olur.
(kaynak:https://stackoverflow.com/questions/3277503/how-do-i-read-a-file-line-by-line-into-a-list)