Can I send emails without authenticating on the SM

2019-02-14 19:28发布

问题:

i am creating simple email sending application. In my application when ever i send email i have to put my email address or password as from but i don't want to use password only want to put email

so

Can i send Email without using password using c#/.net application ?

this is my code:

   try
    {
        // setup mail message
        MailMessage message = new MailMessage();
        message.From = new MailAddress(textBox1.Text);
        message.To.Add(new MailAddress(textBox2.Text));
        message.Subject = textBox3.Text;
        message.Body = richTextBox1.Text;

        // setup mail client
        SmtpClient mailClient = new SmtpClient("smtp.gmail.com");
        mailClient.Credentials = new NetworkCredential(textBox1.Text,"password");

        // send message
        mailClient.Send(message);

        MessageBox.Show("Sent");
    }
    catch(Exception)
    {
        MessageBox.Show("Error");
    }

回答1:

Can i send Email without using password using c#/.net application ?

Yes, if you have access to an email gateway that doesn't require authentication you can simply do:

SmtpClient mailClient = new SmtpClient("your.emailgateway.com");
mailClient.Send(message);

Maybe your company or ISP can provide one for you?



回答2:

In general, you can, sure. In your concrete example code you are using GMail which does not allow anonymous sending.

From their references:

smtp.gmail.com (use authentication)
Use Authentication: Yes
Port for TLS/STARTTLS: 587
Port for SSL: 465

An additional comment regarding your catch clause:

In my opinion you are heavily misusing the exception idea. A better aproach would be something like:

catch(Exception x)
{
    var s = x.Message;
    if ( x.InnerException!=null )
    {
        s += Environment.NewLine + x.InnerException.Message;
    }

    MessageBox.Show(s);
}