
Java ile bir mail server üzerinden mail gönderme
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/*
recipientsTO ve recipientsCC aralarinda “,” olacak sekilde mail adreslerinden olusturuldu.
recipientsCC = “” seklinde yollanirsa CC de kimse yok demektir,hata vermez.
Ancak recipientsTO da en az bir mail adresi olmalidir.Aksi halde javax.mail.SendFailedException: No recipient addresses hatasi alinir.
*/
public boolean SendMail(String host, String from, String recipientsTO, String recipientsCC, String subject, String messageBody) throws MessagingException{
boolean debug = false;
boolean retVal = true;
String MimeType = “text/html”;
String [] recipientsTOArr;
String [] recipientsCCArr;
int numberOfRecipientsTO;
int numberOfRecipientsCC;
try {
// host smtp adres tanimi yapiliyor
Properties props = new Properties();
props.put(“mail.smtp.host”, host);
// “Authentication” yapilmayacak bilgisi veriliyor. (*)
props.put(“mail.smtp.auth”, “false”);
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
// mesaj olusturulmaya basliyoryor
Message msg = new MimeMessage(session);
// FROM kismi
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
// TO kismi, once kac mail adresi oldugu bulunuyor
numberOfRecipientsTO = getMailAdrCount(recipientsTO);
if(numberOfRecipientsTO > 0) {
InternetAddress[] addressTo = new InternetAddress[numberOfRecipientsTO];
// TO adresleri diziye atiliyor
recipientsTOArr = setMailAdrs(recipientsTO,numberOfRecipientsTO);
//Her bir TO adresi için bir InternetAddress objesi olusturuluyor.
for(int j = 0; j < numberOfRecipientsTO; i++) {
addressTo[ j ] = new InternetAddress(recipientsTOArr[ j ]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
}
// CC kismi, once kac mail adresi oldugunu bulunuyor
numberOfRecipientsCC= getMailAdrCount(recipientsCC);
if(numberOfRecipientsCC > 0) {
InternetAddress[] addressCC = new InternetAddress[numberOfRecipientsCC];
// CC adresleri diziye atiliyor
recipientsCCArr = setMailAdrs(recipientsCC,numberOfRecipientsCC);
//Her bir CC adresi için bir InternetAddress objesi olusturuluyor.
for(int j = 0; j < numberOfRecipientsCC; j++) {
addressCC[ j ] = new InternetAddress(recipientsCCArr[ j ]);
}
msg.setRecipients(Message.RecipientType.CC, addressCC);
}
// Konu ve içerik tipi tanimi yapiliyor(Setting the Subject and Content Type)
msg.setSubject(subject);
msg.setContent(messageBody, MimeType);
// Tarih set ediliyor(Set the Date: header)
msg.setSentDate(new Date());
// mesaj gonderiliyor.
startTime = System.currentTimeMillis();
Transport.send(msg);
endTime = System.currentTimeMillis();
return true;
}
catch (MessagingException msge) {
msge.printStackTrace();
retVal = false;
}
catch (Exception e) {
e.printStackTrace();
retVal = false;
}
return retVal;
}
}
(*)Authenticator auth = new SMTPAuthenticator();
(**)Session session = Session.getDefaultInstance(props, auth);
C# mail Gönderme C#’ta mail göndermek uygulamasindan önce mail gönderme isleminin nasil çalistigi konusuna biraz deyinelim