台灣最大程式設計社群網站
線上人數
753
 
會員總數:246039
討論主題:189629
歡迎您免費加入會員
討論區列表 >> ASP.NET >> [NET]STMPMAIL問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[NET]STMPMAIL問題
價值 : 0 QP  點閱數:6529 回應數:13
樓主

小青
初學者
324 100
1444 242
發送站內信

我是win xp+iis
我今天是了一書上的 線上MAIL功能 當我送出時他都說
"SendUsing" (傳送使用) 設定值無效。 
這是什麼意思啊   是我stmpmail哪裡沒設嗎 
程式嗎如下
<%@Import Namespace="System.Web.Mail" %>
<HTML>
<SCRIPT LANGUAGE="VB" RUNAT="server">
Sub SendMail (Obj As Object, E As EventArgs)
   Dim MailObject As New MailMessage
   MailObject.to=Receiver.Text
   MailObject.From=Sender.Text
   MailObject.Cc=CcReceiver.Text
   MailObject.Bcc=BccReceiver.Text
   MailObject.Subject=MailSubject.Text
   MailObject.Body=MailContents.Text
   MailObject.BodyFormat=MailFormat.HTML
   MailObject.Priority=MailPriority.High
   SMTPMail.Send(MailObject)
End Sub
</SCRIPT>
<Body>
<form runat="server">
<table width="100%">
  <tr>
    <td width="30%">收件人:</td>
    <td><asp:TextBox id="Receiver" runat="server"/></td>
  </tr>
  <tr>
     <td>寄件人:</td>
     <td><asp:TextBox id="Sender" runat="server"/></td>
  </tr>
  <tr>
     <td>副本收件人:</td>
     <td><asp:TextBox id="CcReceiver" runat="server"/></td>
  </tr>
  <tr>
     <td>密本副件收件人:</td>
     <td><asp:TextBox id="BCcReceiver" runat="server"/></td>
  </tr>
  <tr>
     <td>主旨:</td>
     <td><asp:TextBox id="MailSubject" runat="server"/></td>
  </tr>
  <tr>
      <td>內容:</td>
      <td><asp:TextBox id="MailContents" runat="server" TextMode="MultiLine" rows="6" cols="30"/><p></td>
  </tr>
  <tr>
    <td colspan="2" align="center">
      <asp:Button id="Button1" Text="傳送郵件" onClick="SendMail" runat="server"/>
    </td>
  </tr>
</table>
</form>
</body>
</html>

本篇文章發表於2002-03-21 22:20
1樓
回應

sabcat
檢舉此回應
你忘了建立SmtpMail物件
在  Dim MailObject As New MailMessage底下加一行
Dim SendMail As New SmtpMail
建議物件名稱不要與類別名稱相同,以免產生預期外的錯誤
本篇文章回覆於2002-03-22 00:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

小青
檢舉此回應
我試過了
加了Dim SendMail As New SmtpMail  
變成
Sub SendMailto (Obj As Object, E As EventArgs)
 Dim MailObject As New MailMessage
 Dim SendMail As New SmtpMail  
MailObject.to=Receiver.Text
我為了不讓他混亂將sub sendmail改成sendmailto
但還是錯誤
錯誤訊息是錯在多加的那句
Compilation Error 

Description: 
An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: 
BC30390: 'System.Web.Mail.SmtpMail.Private Overloads Sub New()' is not accessible in this context because it is 'Private'.

Source Error:
Line 4:  Sub SendMailto (Obj As Object, E As EventArgs)
Line 5:     Dim MailObject As New MailMessage
Line 6:  Dim SendMail As New SmtpMail<---------------   
Line 7:  MailObject.to=Receiver.Text
Line 8:     MailObject.From=Sender.Text
 
本篇文章回覆於2002-03-22 00:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

sabcat
檢舉此回應
@@
真的假的@@~
我看自己以前try的程式...是需要建立smtpmail物件哩
等等切回win2000 去看看..
另外...跟你確定一下...你用的版本...
本篇文章回覆於2002-03-22 00:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

sabcat
檢舉此回應
well~
我不知道你用的是那一個版本..
但我用你po的原始檔去run~沒問題
改成我說的 Dim SendMail As New SMTPMail
然後用SendMail.Send(MailObjet)也沒問題...
我用的是Beta2中文版
不知你的是???1.0正式?
本篇文章回覆於2002-03-22 01:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

sabcat
檢舉此回應
剛用1.0版測了一次...的確是會出現你那個問題
我的解決方式~在SEND之前多加一行
SmtpMail.SmtpServer="你的smtp server name"
解決...
本篇文章回覆於2002-03-22 13:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

小青
檢舉此回應
我是用1.0的 我試試看
本篇文章回覆於2002-03-22 18:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

小青
檢舉此回應
我剛剛試了一下
他說
伺服器拒絕了一個或多個收件者地址。伺服器的回應為:550 5.7.1 Unable to relay for breezemark@seed.net.tw 
Description:
An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: 
System.Runtime.InteropServices.COMException: 伺服器拒絕了一個或多個收件者地址。伺服器的回應為:550 5.7.1 Unable to relay for breezemark@seed.net.tw 

我iis內

預設 SMTP 虛擬伺服器(裡面包含一個 網域 跟工作階段)我完全沒做任何設定
跟這有關嗎 還是我哪裡沒設定好
本篇文章回覆於2002-03-22 18:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

sabcat
檢舉此回應
這部份就真的不是很清楚了...
不知你用的isp是?你設的smtpserver為?
我下午在try時..是在公司內部測..用的smtpserver是公司的 不是自己本機上
且..我這台是由win98升級到xp~所以pws也連帶升級到iis~因此也沒有smtp的server可設定
由這些來看...我倒是覺得..可能你的smtpserver部份有點狀況吧..
但是真的不是很清楚是怎麼一回事就是了
本篇文章回覆於2002-03-22 20:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

小青
檢舉此回應
我是seednet 的adsl
而你說的smtpserver士紙什麼啊
試iis裡面預設smtpmail的那個 還是 有要去哪設定這種東西嗎
本篇文章回覆於2002-03-22 20:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

sabcat
檢舉此回應
smtpserver是 smtpmail類別裡的一個屬性
用來設定寄信用的伺服器..
你用的是seednet adsl~
那你的smtpserver就設成seednet的寄信伺服器看看
本篇文章回覆於2002-03-22 20:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

小青
檢舉此回應
thx 我弄好了
本篇文章回覆於2002-03-22 20:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

QQ
檢舉此回應
你都是照書本打的巴!如果是而且又出錯,你可能要再加上下面這個認證碼。
原因是因為資訊安全的關係,有很多垃圾郵件,所以伺服器有有設定要"手動認證"才能發送
避免程式大量發送,所以只要加上下面的認證就可以

//使用用驗證
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
//設定使用者帳號(把my_username_here改成您的使用者帳號)
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "my_username_here");
//設定密碼(把password改成您的使用者密碼)
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "password");
SmtpMail.SmtpServer = "mail.mycompany.com"; //SMTP伺服器
SmtpMail.Send( mail );


------------------------完整程式----------------------
MailMessage mail = new MailMessage();
mail.To = "me@mycompany.com";
mail.From = "you@yourcompany.com";
mail.Subject = "this is a test email.";
mail.Body = "Some text goes here";
mail.BodyFormat = MailFormat.Html;//設定為HTML格式

//使用用驗證
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
//設定使用者帳號(把my_username_here改成您的使用者帳號)
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "my_username_here");
//設定密碼(把password改成您的使用者密碼)
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "password");
SmtpMail.SmtpServer = "mail.mycompany.com"; //SMTP伺服器
SmtpMail.Send( mail );
本篇文章回覆於2010-03-19 02:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

gipi
檢舉此回應
如果問題解決了請記得結案喔..
本篇文章回覆於2010-03-21 11:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.