郵件發送簡單問題

zhaoxiaoyang5156 2007-10-12 10:47:22
看了一些別人的有關發送郵件的介紹,(http://blog.csdn.net/FuWaer/archive/2007/06/06/1640218.aspx這個就是一篇)都提到System.Web.Mail.SmtpMail.SmtpServer是From的Smtp的服務器名或IP。但是今天做郵件發送(發送給別人的)的時候卻碰到了疑惑,故來請教大家。(其實以前從來沒有注意過。因為以前都是做別人發送給我們的)。有關這個我就做了如下實驗:
private void SendMail()
{
//發送成功
MailMessage objMail = new MailMessage();
objMail.From = "113605767@qq.com";
objMail.To= "ym_rd05@f-net.com.tw";
objMail.Subject = "測試!";
objMail.BodyFormat = MailFormat.Text;
objMail.Body = "測試內容";

System.Web.Mail.SmtpMail.SmtpServer="220.130.130.***";
System.Web.Mail.SmtpMail.Send(objMail);
}
我這樣寫能成功,ym_rd05@f-net.com.tw能收到郵件。
后來我在這個代碼里面添加了三條
objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "ym_rd05@f-net.com.tw");
objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "****"); //密碼填寫什么都無所謂。
照樣成功。
接著我寫了另一個程序,如下:
private void SendMail1()
{
//發送失敗
MailMessage objMail = new MailMessage();
objMail.From = "ym_rd05@f-net.com.tw";
objMail.To = "113605767@qq.com";
objMail.Subject = "測試!";
objMail.BodyFormat = MailFormat.Text;
objMail.Body = "";

System.Web.Mail.SmtpMail.SmtpServer="smtp.qq.com";
objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "113605767@qq.com");
objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "****");
System.Web.Mail.SmtpMail.Send(objMail);
}
靠。。發送失敗。
(其實我還做了很多類似的實驗。我就不發出來的,這么多大家應該看得明白吧。)
現在的問題是:
我如果設置,可以使的113605767@qq.com收到ym_rd05@f-net.com.tw發送的郵件。
如果不輸入用戶名和密碼的話。又該如何設置呢?
還有就是以上的第一個實驗好像和網上寫的一個資料不相合。能說個為什么不?
...全文
152 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cantonstar 2007-10-12
  • 打赏
  • 举报
回复
System.Web.Mail.SmtpMail.SmtpServer 必须是发送方的SmtpServer
zhaoxiaoyang5156 2007-10-12
  • 打赏
  • 举报
回复
我是說
private void SendMail()
{
//發送成功
MailMessage objMail = new MailMessage();
objMail.From = "zhaoxiaoyang5156@163.com";
objMail.To = "ym_rd05@f-net.com.tw";
objMail.Subject = "測試!";
objMail.BodyFormat = MailFormat.Text;
objMail.Body = "";

System.Web.Mail.SmtpMail.SmtpServer="220.130.130.×××";
System.Web.Mail.SmtpMail.Send(objMail);
}


private void SendMail1()
{
//發送成功
MailMessage objMail = new MailMessage();
objMail.From = "zhaoxiaoyang5156@163.com";
objMail.To = "ym_rd05@f-net.com.tw";
objMail.Subject = "測試!";
objMail.BodyFormat = MailFormat.Text;
objMail.Body = "";

System.Web.Mail.SmtpMail.SmtpServer="smtp.163.com";
objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "zhaoxiaoyang5156");
objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "****");
System.Web.Mail.SmtpMail.Send(objMail);
}


上面的二段代碼為什么都是成功的。。
System.Web.Mail.SmtpMail.SmtpServer 到底是設置TO的還是FROM 的。
是不是因為我的郵件服務器設置的問題。引起的。
cantonstar 2007-10-12
  • 打赏
  • 举报
回复
看不懂你的意思,给你段代码
private void SendMyMail()
{
string Accessory = ""; //附件
string SendTos = "";  //发送人
string CcTos = "asasd@sina.com,dsa_asd@163.com";   //抄送人
string[] Receiver = System.Text.RegularExpressions.Regex.Split(CcTos, ","); //总收件人
string FromMail = "" ; //发件人
string Title = ""; //邮件主题
string Body = ""; //邮件主体
string ShowName=""; //显示名字
string Host = ""; //邮件服务器
string EmailPwd = ""; //发件人邮箱密码

if (SendTos != "" || CcTos != "")
{
//用户名(取发送邮箱的@前面的部分,即ustbwuyi1
string MailUserName = FromMail.Substring(0, FromMail.IndexOf("@"));

//密码
string MailPassword = EmailPwd;//发件人邮箱密码
MailMessage mailmessage = new MailMessage();
MailAddress n = new MailAddress(FromMail);
mailmessage.From = n;
mailmessage.Subject = Title;
mailmessage.IsBodyHtml = true;
mailmessage.Body = Body;

//添加附件

ArrayList FileNames = new ArrayList();
FileNames.Add(@Accessory);//附件地址
//如果存在附件
if (FileNames.Count >= 1)
{
//添加附件
string Filename;
for (int k = 0; k < FileNames.Count; k++)
{
Filename = FileNames[k].ToString();
mailmessage.Attachments.Add(new Attachment(Filename));
}
}
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Host = Host;
client.Credentials = new System.Net.NetworkCredential(MailUserName, MailPassword);
//向收件人和抄送人循环发送
for (int j = 0; j < Receiver.Length; j++)
{
mailmessage.To.Add(Receiver[j].ToString());
try
{
client.Send(mailmessage);
Response.Write("<script language='javascript'>alert('用户:" + Receiver[j] + "邮件发送成功')</script>");
//System.Web.Mail.SmtpMail.Send(mailmessage);
}
catch (Exception ex)
{
Response.Write("<script language='javascript'>alert('用户:"+Receiver[j]+"邮件发送失败:" + ex.Message + "')</script>");
}
}
}
zhaoxiaoyang5156 2007-10-12
  • 打赏
  • 举报
回复
也許吧。
cantonstar 2007-10-12
  • 打赏
  • 举报
回复
System.Web.Mail.SmtpMail.SmtpServer如果是公共的邮件服务器的话应该是只能用发送方的,如果用自己的服务器的话可以自己设置就无所谓了
zhaoxiaoyang5156 2007-10-12
  • 打赏
  • 举报
回复
都不清楚 ,,邮件服务器SMTP 是說發送方的,還是說接受方的 。如果說是接收方,還能說的過去。那不是和”System.Web.Mail.SmtpMail.SmtpServer 必须是发送方的SmtpServer“有點不符。。
我知是知道差不多的意思。就是不懂,System.Web.Mail.SmtpMail.SmtpServer設置成接受方的也能發送成功。
還好,你們都看懂我的意思了。不知道還有誰碰到過和我一樣的問題的。
cantonstar 2007-10-12
  • 打赏
  • 举报
回复
应该是邮件服务器设置的问题,不是程序的问题
leaohong 2007-10-12
  • 打赏
  • 举报
回复
邮件服务器SMTP设置成不需要身份认证自然谁都可以发啦
zhaoxiaoyang5156 2007-10-12
  • 打赏
  • 举报
回复
那為什么
private void SendMail()
{
//發送成功
MailMessage objMail = new MailMessage();
objMail.From = "zhaoxiaoyang5156@163.com";
objMail.To = "ym_rd05@f-net.com.tw";
objMail.Subject = "測試!";
objMail.BodyFormat = MailFormat.Text;
objMail.Body = "";

System.Web.Mail.SmtpMail.SmtpServer="220.130.130.×××";
System.Web.Mail.SmtpMail.Send(objMail);
}
這個也能成功呢?
我公司的網站。別人發簡歷的時候。就是這么做的。
后來我就想。是不是郵件服務器設置的問題。

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧