日期:2014-05-18  浏览次数:20421 次

郵件發送簡單問題
看了一些別人的有關發送郵件的介紹,(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發送的郵件。
如果不輸入用戶名和密碼的話。又該如何設置呢?
還有就是以上的第一個實驗好像和網上寫的一個資料不相合。能說個為什么不?


------解决方案--------------------
看不懂你的意思,给你段代码
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