Saya melihat berbagai versi konstruktor, satu menggunakan info dari web.config, satu menentukan host, dan satu host dan port. Tetapi bagaimana cara mengatur nama pengguna dan kata sandi untuk sesuatu yang berbeda dari web.config? Kami memiliki masalah ketika smtp internal kami diblokir oleh beberapa klien keamanan tinggi dan kami ingin menggunakan server smtp mereka, apakah ada cara untuk melakukan ini dari kode alih-alih web.config?
Dalam hal ini bagaimana saya akan menggunakan kredensial web.config jika tidak ada yang tersedia dari database, misalnya?
public static void CreateTestMessage1(string server, int port)
{
string to = "[email protected]";
string from = "[email protected]";
string subject = "Using the new SMTP client.";
string body = @"Using this new feature, you can send an e-mail message from an application very easily.";
MailMessage message = new MailMessage(from, to, subject, body);
SmtpClient client = new SmtpClient(server, port);
// Credentials are necessary if the server requires the client
// to authenticate before it will send e-mail on the client's behalf.
client.Credentials = CredentialCache.DefaultNetworkCredentials;
try {
client.Send(message);
}
catch (Exception ex) {
Console.WriteLine("Exception caught in CreateTestMessage1(): {0}",
ex.ToString());
}
}
c#
smtpclient
CloudMeta
sumber
sumber
UseDefaultCredentials
disetel ke true, ia akan menggunakan default, jika tidak maka pertama-tama akan terlihat diCredentials
properti dan kemudian di web.config. Jika tidak ada yang disetel akan mengirim email secara anonim.Menggunakan
NetworkCredential
Yap, cukup tambahkan dua baris ini ke kode Anda.
sumber
sumber
Karena tidak semua klien saya menggunakan akun SMTP yang diautentikasi, saya terpaksa menggunakan akun SMTP hanya jika nilai kunci aplikasi diberikan dalam file web.config.
Berikut adalah kode VB:
sumber