kode untuk mengirim email

Apa yang saya lakukan salah di sini?

 private void SendMail(string from, string body)
    {
        string mailServerName = "plus.pop.mail.yahoo.com";
        MailMessage message = new MailMessage(from, "[email protected]", "feedback", body);
        SmtpClient mailClient = new SmtpClient();
        mailClient.Host = mailServerName;
        mailClient.Send(message);
        message.Dispose();
    }

Saya mendapatkan kesalahan berikut:

Upaya koneksi gagal karena pihak yang terhubung tidak merespons dengan benar setelah jangka waktu tertentu, atau koneksi yang dibuat gagal karena host yang terhubung gagal merespons 209.191.108.191:25


person aherlambang    schedule 04.04.2010    source sumber


Jawaban (3)


Anda menggunakan server yang salah. Anda harus menggunakan pengaturan SMTP.

coba server ini: plus.smtp.mail.yahoo.com Situs mereka mencatat host ini sebagai SSL.

private void SendMail(string from, string body) 
{ 
    string mailServerName = "plus.smtp.mail.yahoo.com"; 
    int mailServerPort = 465;
    string toAddress = "[email protected]";
    string subject = "feedback";

    string username = "user";
    string password = "password";

    SmtpClient mailClient = new SmtpClient(mailServerName, 
                                           mailServerPort); 
    mailClient.Host = mailServerName; 
    mailClient.Credentials = new NetworkCredential(username, 
                                                   password);
    mailClient.EnableSsl = true;

    using (MailMessage message = new MailMessage(from, 
                                                 toAddress, 
                                                 subject, 
                                                 body))
        mailClient.Send(message); 
} 
person Matthew Whited    schedule 04.04.2010
comment
nama pengguna dan kata sandi harus menjadi kata sandi pengirim? - person aherlambang; 04.04.2010
comment
Saya juga mendapatkan kesalahan berikut: Koneksi yang ada ditutup paksa oleh host jarak jauh - person aherlambang; 04.04.2010
comment
ya, nama pengguna dan kata sandi harus milik pengirim. Nama pengguna mungkin harus berupa alamat email Anda. Anda juga dapat mencoba menghapus SSL dan login, tetapi itu tergantung pada Google. Saya tidak punya akun di sana, jadi saya tidak bisa mengujinya untuk Anda. - person Matthew Whited; 04.04.2010
comment
baiklah...ini untuk formulir hubungi kami.. jadi apakah Anda menyarankan agar saya meminta pengguna memasukkan nama pengguna dan kata sandinya di formulir hubungi kami? Kedengarannya tidak terlalu bagus... biasanya formulir hubungi kami hanya memasukkan email mereka - person aherlambang; 04.04.2010
comment
Tidak, Anda hanya memerlukan akun di server SMTP. Anda harus dapat memasukkan alamat apa pun yang Anda inginkan di baris dari. (Biasanya alamat asal dan akun smtp sama, kecuali Anda menggunakan SMTP sebagai relay seperti yang Anda jelaskan.) Anda mungkin perlu memeriksanya ke Yahoo. Terkadang perjanjian/kebijakan pengguna menyatakan bahwa Anda hanya akan menggunakan server mereka untuk email pribadi. - person Matthew Whited; 05.04.2010

Anda perlu menggunakan server SMTP, sepertinya Anda menggunakan server POP3.

person Fogh    schedule 04.04.2010

Untuk mengirim email menggunakan server email Yahoo, Anda perlu menyetel EnableSSL = true pada instance SmtpClient Anda.

Anda juga perlu menggunakan port yang benar yaitu 465.

Ada banyak tutorial di situs ini yang benar-benar membahas cara menggunakan namespace System.Net.Mail:

person rtpHarry    schedule 04.04.2010