0

メール送信サンプルアプリケーションを作成していますが、「gmail、yahoo、hotmail」などの別のメールアドレスからのメール送信を使用したいので、「smtp.email.com」をホストとして使用したくありません。ホストとしての「smtp.email.com」(gmailの場合は「smtp.gmail.com」、yahoo.comの場合は「smtp.mail.yahoo.com」)のように、さまざまな会社ごとにホスト名を変更する必要があります。 smtp.email.comではなく、SMTPホストとしてIPアドレスを使用します。

SMTPホスト名を変更せずに、別の電子メール会社を使用して電子メールを送信できるように、この解決策を教えてください。

これは私のコードです:

        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");//here i have to change SMTP host for different email company 
            mailClient.Credentials = new NetworkCredential(textBox1.Text,"password");

            // send message
            mailClient.Send(message);

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

1 に答える 1

1

名前の代わりにIPアドレスを使用することもできますが、IPアドレスが変更された場合は、機能を停止することになります。開いているリレープロキシの形式..asyahooはgmailを受信せず、gmailはyahooなどを受信しません。実際には、IPを使用するか名前を使用するかにかかわらず、送信すると変更されることになります。

ただし、Webサーバーは、Gmail / yahooアカウントではなく、ドメインからメールを送信する可能性があります。ドメインからメールを送信してみませんか?たとえば、noreply @ myweb.comの場合、SMTPサーバーはWebプロバイダーと同じままです。

もちろんできます

SmtpClient mailClient
if (textbox1.Text.Contains("gmail") 
{
            mailClient = new SmtpClient("smtp.gmail.com");/
            mailClient.Credentials = new NetworkCredential(textBox1.Text,"password"); 
}
else if (textbox1.Text.Contains("somemail") 
{
            mailClient = new SmtpClient("smtp.somemail.com");/
            mailClient.Credentials = new NetworkCredential(textBox1.Text,"password"); 
}

于 2012-09-19T06:55:02.877 に答える