Merhaba, bu yazımda sizle ASP.NET ile İletişim Formu hazırlamayı yani Gmail üzerinden mail göndermeyi anlatacağım.
Öncelikle “contact.aspx” ya da “iletisim.aspx” adında bir web form oluşturup web sitenize eklemelisiniz. Sonra bu formun içerisinde tablo oluşturup ASP.NET kontrollerini kullanarak metin kutularını ve gönderme butonunu eklemelisiniz. Kontrollerin isimleri için bu yazıdaki koda bakabilirsiniz. Formu gönderme butonuna çift tıkladığınızda btnSubmit_Click prosedürü oluşturulur bu prosedüre mail gönderme kodlarını yazıyoruz.
Mail gönderme kodlarında öncelikle MailMessage nesnesi oluşturup formdan aldığımız bilgileri kullanara mail iletimizi hazırlıyoruz. SmtpClient nesnesi ile de gönderiyoruz. Dikkat etmeniz geren kendi gönderen ve alıcı adreslerini ve kullandığınız gmail hesabının şifresini kullanmak.
Gmail’den mail gönderebilmek için host olarak smtp.gmail.com port olarak ta 587 portunu kullanıyoruz. Dış kaynaktan yazılımla mail gönderimini güvenlik nedeniyle gmail varsayılan olarak engeller, hatta ısrar ederseniz hesabınızı engelleyebilir. Bunun olmaması için gmailde “daha az güvenli uygulamalar için erişimi aç” demeniz gerekiyor. Bu ayarı https://www.google.com/settings/security/lesssecureapps adresinde bulabilirsiniz.
Örnek kodlar aşağıdadır. Mutlu kodlamalar…
<%@ Page Language="C#" AutoEventWireup="true" %> <!DOCTYPE html> <script runat="server"> protected void btnSubmit_Click(object sender, EventArgs e) { System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage(); mailMessage.From = new System.Net.Mail.MailAddress("gonderen@gmail.com", "Gönderen Firma Adı"); mailMessage.Subject = "İletişim Formu: " + this.txtFullName.Text; mailMessage.To.Add("alici@firmaadi.com,digeralici@gmail.com"); string body; body = "Ad Soyad: " + this.txtFullName.Text + "<br />"; body += "Telefon: " + this.txtPhone.Text + "<br />"; body += "E-posta: " + this.txtEmail.Text + "<br />"; body += "Konu: " + this.txtSubject.Text + "<br />"; body += "Mesaj: " + this.txtMessage.Text + "<br />"; body += "Tarih: " + DateTime.Now.ToString("dd MMMM yyyy") + "<br />"; mailMessage.IsBodyHtml = true; mailMessage.Body = body; System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587); smtp.Credentials = new System.Net.NetworkCredential("gonderen@gmail.com", "gondereninmailsifresi"); smtp.EnableSsl = true; smtp.Send(mailMessage); Information.Text = "Mesajınız gönderildi. Teşekkür ederiz."; } </script> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta charset="utf-8" /> <title>İletişim</title> </head> <body> <form id="form1" runat="server"> <h2>İletişim Formu</h2> <p><asp:Literal ID="Information" runat="server">Soru ve görüşleriniz için lütfen aşağıdaki formu kullanın.</asp:Literal></p> <table> <tr> <td style="width:200px">Ad Soyad:</td> <td> <asp:TextBox ID="txtFullName" runat="server" Width="200px"></asp:TextBox> </td> </tr> <tr> <td>Telefon Numarası:</td> <td> <asp:TextBox ID="txtPhone" runat="server" Width="200px"></asp:TextBox> </td> </tr> <tr> <td>E-posta:</td> <td> <asp:TextBox ID="txtEmail" runat="server" Width="200px"></asp:TextBox> </td> </tr> <tr> <td>Konu:</td> <td> <asp:TextBox ID="txtSubject" runat="server" Width="200px"></asp:TextBox> </td> </tr> <tr> <td>Mesaj:</td> <td> <asp:TextBox ID="txtMessage" runat="server" Height="80px" TextMode="MultiLine" Width="200px"></asp:TextBox> </td> </tr> <tr> <td> </td> <td> <asp:Button ID="btnSubmit" runat="server" Text="Gönder" OnClick="btnSubmit_Click" /> </td> </tr> </table> </form> </body> </html>
2015 yılında yazılmış lakin yine de bir şansımı deneyeyim, istedim. Peki; bu verilere dropdown bir button eklemek istersek, bu veriyi mail ile göndermek amaçlı nasıl bir çeviri kullanmamız gerekir, script bloğu içinde. İyi çalışmalar…
Cok net,temiz, super bir paylasim. Sayenizde proje halindeki sitemden ilk maili aldim. Cok tesekkurler..
localhostta bu kodlar çalışıyor ama siteme yükleyince hata verdi. Yardımcı olursanız sevinirim