SORU
16 NİSAN 2009, PERŞEMBE


C) E-Posta gönderme# Google Apps üzerinden hesap

Standart Google Apps hesabı var. Kur Google Apps ile özel bir etki alanı var. Gmail arayüzü kullanmak ve e-posta başarılı bir şekilde Google Apps üzerinden göndermek ve almak mümkün duyuyorum. Ancak kodu ile bir e-posta göndermek istiyorum. Bu girişim için, aşağıdaki kodu çalışıyorum:

MailMessage mailMessage = new MailMessage();
mailMessage.To.Add("someone@somewhere.com");
mailMessage.Subject = "Test";
mailMessage.Body = "<html><body>This is a test</body></html>";
mailMessage.IsBodyHtml = true;

// Create the credentials to login to the gmail account associated with my custom domain
string sendEmailsFrom = "emailAddress@mydomain.com";             
string sendEmailsFromPassword = "password";
NetworkCredential cred = new NetworkCredential(sendEmailsFrom, sendEmailsFromPassword);

SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 587);
mailClient.EnableSsl = true;
mailClient.DeliveryMethod = SmtpDeliveryMethod.Network;
mailClient.UseDefaultCredentials = false;
mailClient.Timeout = 20000;
mailClient.Credentials = cred;
mailClient.Send(mailMessage);

Yöntem ulaşılır gönderirken, bir İstisna olduğunu belirtir atılır:

"SMTP sunucusu güvenli bir gerektirir bağlantı veya istemci değildi kimliği doğrulanmış. Sunucu yanıtı oldu: 5.5.1 kimlik Doğrulaması Gerekli."

Nasıl Google üzerinden yaptığım özel etki alanı üzerinden e-posta gönderebilirim?

Teşekkürler!

CEVAP
16 NİSAN 2009, PERŞEMBE


Kodunuzda tüm smtp ayarlarını koda gerek yok. Web koydu.config yerine. Bu şekilde gerekirse bu ayarları şifrelemek ve uygulama yeniden olmadan anında değiştirebilirsiniz.

<configuration>
  <system.net>
    <mailSettings>
      <smtp from="example@domain.com" deliveryMethod="Network">
          <network host="smtp.gmail.com" port="587"
              userName="example@domain.com" password="password"/>
      </smtp>
    </mailSettings>
  </system.net>
</configuration>

E-posta SmtpClient SSL: sadece etkinleştirmek gönderdiğinizde sonunda

var message = new MailMessage("navin@php.net");
// here is an important part:
message.From = new MailAddress("example@domain.com", "Mailer");
// it's superfluous part here since from address is defined in .config file
// in my example. But since you don't use .config file, you will need it.

var client = new SmtpClient();
client.EnableSsl = true;
client.Send(message);

Hangi Gmail ile de kimlik doğrulaması için çalışıyoruz aynı e-posta adresinden e-posta göndermek emin olun.

Not: İle başlayan .Ekle enableSsl NET 4.0="true" web.kodu ayarına göre config.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • superemposed

    superemposed

    25 Aralık 2007