我正在创建一个电子邮件发送示例应用程序,我想使用来自不同电子邮件地址的发送电子邮件,如“gmail,yahoo,hotmail”,所以我不想使用“smtp.email.com”作为主机,因为如果我使用“smtp.email.com”作为主机,我将不得不为每个不同的公司更改我的主机名,如(gt的“smtp.gmail.com”或yahoo.com的“smtp.mail.yahoo.com”)所以 我可以使用IP地址作为SMTP主机而不是smtp.email.com。
请给我一个解决方案,以便在不更改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");
}
答案 0 :(得分:1)
当然你可以使用IP地址而不是名字,但是请记住,如果他们改变了你要改变你的IP以便停止工作..但是......这需要改变,这取决于你发送邮件的内容,除非你发现某种形式的中继代理打开.. AS雅虎不会收到gmail和gmail不会收到雅虎等..现实是如果你发送它会最终改变你使用IP或名称。
然而,您的网络服务器很可能会从您的域发送邮件,而不是您的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");
}
等