读书人

搞定这个,贴2000分相赠,决不食言,VS20

发布时间: 2012-01-24 23:11:54 作者: rapoo

搞定这个,贴2000分相赠,决不食言,VS2005中的收邮件和发邮件。
email:by_cap@163.com

[解决办法]
哈哈...csdn分数这么值得啊?
[解决办法]
我这有个 发邮件的:
using System.Web.Mail;
public void SendMail()
{
MailMessage objMail = new MailMessage();
objMail.From=t“发件人邮件地址”;
objMail.To= "收邮件地址 ";
objMail.BodyFormat=MailFormat.Html;
objMail.Subject= "主题 ";
string str= "内容 ";
objMail.Body=str;
System.Web.Mail.SmtpMail.SmtpServer= "220.130.130.*** ";
System.Web.Mail.SmtpMail.Send(objMail);
}
当然 VS2005的话 可以用 using System.Web.Net;
下的操作 更好。我就不写了。

[解决办法]
顶.楼住分有那么多?
[解决办法]
http://www.codeproject.com/useritems/SendMailSMTPWebConfig.asp
This articles educates you to send mails using SMTP mail server in HTML format. It makes use of default settings from the web.config for sending e-mail.


http://www.codeproject.com/aspnet/EWSWebPt3.asp
Introduction
The BasePage class e-mail features
Two common approaches
The BasePage class benefits
How it works
The EMailRenderedPage property
The Render method
The RenderForEMail method
E-mail event handlers
The EMailThisPage event
The EMailError event
Connecting the event handlers
Conclusion
Revision history

[解决办法]
我以前和你遇到了同样的问题 在自己XP机器上测试的时候是成功的
但是一传到服务器上就出现诸如这样的提示:
"服务器拒绝了一个或多个收件人地址。服务器响应为: 550 Local user only or Authentication mechanism "

说是要这样写:
using System.Web.Mail
MailMessage mail = new MailMessage();
mail.From = "xiaotupansy@163.com ";
mail.To= "xiaotupansy@163.com ";
mail.Subject = "1111111111 ";
mail.Body = "2222222222222 ";
mail.Fields[ "http://schemas.microsoft.com/cdo/configuration/sendusername "] = "用户名 ";
mail.Fields[ "http://schemas.microsoft.com/cdo/configuration/sendpassword "] = "密码 ";
mail.Fields[ "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate "] = 1;
mail.Fields[ "http://schemas.microsoft.com/cdo/configuration/languagecode "] = 0x0804;
SmtpMail.SmtpServer = "smtp.163.com ";
SmtpMail.Send(mail);


注意加 这个mail.Fields

这样了而且说还只能接受163的邮件

我也没有搞出来 我就想什么邮件都可以发 什么邮件都没有收

还是没有搞出来

我们没有自己的服务器 什么163的这么办啊 就不能接所有的邮件了吗

请高手解决
lz一起解决下啊 呵呵
[解决办法]
用你邮箱的邮件服务器.
你是codeproject.com搜索一下有个新加坡人写了个项目
[解决办法]
我还一位新加坡人是说中文的了 原来也是说英文的啊 艾
[解决办法]
2k 有这么多?

偶得去看看偶多少
[解决办法]
你想做什么
说详细点
我只能借助第3方的邮件服务器来收发
[解决办法]
在03里面到是写过发,收邮件还不会。05还没做过,应该差不多。
UP一下!
[解决办法]
我给你搞定发送邮件的
http://community.csdn.net/Expert/topic/5583/5583067.xml?temp=.1522028
JMAIL实现我有源码


我给你
经过测试没问题可以多发!

1.安装jmail4.3

2.找到jmail.dll(Program Files\Dimac\w3JMail4下)

3.执行Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin\ildasm.exe(可使用Visual Studio .Net 2003 命令提示),

格式如下:tlbimp c:\Program Files\Dimac\w3JMail4\jmail.dll /out:myJmail.dll /namespace:myJmail

就是我在Visual Studio .Net 2005命令提示下编译执行 tlbimp c:\Program Files\Dimac\w3JMail4\jmail.dll /out:myJmail.dll /namespace:myJmail
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Mail;
using System.Web.Util;
using myJmail;

using Tool;
using Manager;
using Entity;

public partial class UserControls_Jmaill : System.Web.UI.UserControl
{
string strCurrentPath = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSend_Click(object sender, EventArgs e)
{
try
{
this.lblTitle.Text = "发送邮件控件 ";

myJmail.Message Jmail = new myJmail.Message();
DateTime t = DateTime.Now;
String Subject = this.txtTitle.Text;
String body = this.txtContent.Text;
string FromEmail = this.txtFormEmail.Text.Trim();//你的email
String ToEmail = this.txtToEmail.Text;//对方的email
String AddAttachment = this.FileUploadSubject.PostedFile.FileName;
//Silent属性:如果设置为true,JMail不会抛出例外错误. JMail. Send( () 会根据操作结果返回true或false
Jmail.Silent = true;
//Jmail创建的日志,前提loging属性设置为true
Jmail.Logging = true;
//字符集,缺省为 "US-ASCII "
Jmail.Charset = "GB2312 ";
//信件的contentype. 缺省是 "text/plain ") : 字符串如果你以HTML格式发送邮件, 改为 "text/html "即可。
// Jmail.ContentType = "text/html ";
ToEmail = ToEmail.Replace( "\n ", " ").Replace( " ", " ");
string[] str = ToEmail.Split( ', ');

for (int i = 0; i < str.Length; i++)
{
//添加收件人
Jmail.AddRecipient(str[i], " ", " ");

Jmail.From = FromEmail;
//发件人邮件用户名
Jmail.MailServerUserName = FromEmail;
//发件人邮件密码
Jmail.MailServerPassWord = " ";//FromEmail邮箱的登陆密码
//设置邮件标题
Jmail.Subject = Subject;
//邮件添加附件,(多附件的话,可以再加一条Jmail.AddAttachment( "c:\\test.jpg ",true,null);)就可以搞定了。[注]:加了附件,讲把上面的Jmail.ContentType= "text/html ";删掉。否则会在邮件里出现乱码。
Jmail.AddAttachment(AddAttachment, true, null);
//邮件内容
Jmail.Body = body + t.ToString();
//加密文件
//Jmail.PGPEncrypt = true;
//Jmail发送的方法
Jmail.Send( "smtp.163.com ", false);
Jmail.ClearAttachments();
Jmail.ClearRecipients();
}
Jmail.Close();
}
catch (Exception ex)
{
this.lblMessage.Text = ex.Message;
}
}

}
配置生成好新的MYJAMIL.DLL 是在Microsoft .NET Framework SDK v2.0里面的SDK 命令提示里面配置DLL配置好了才能用



[解决办法]
虽然没有做过,但ASP.NET提供了收发邮件的现成的类,上网搜索一下,应该有很多这样的内容。不过这样看来,楼主定是有特殊的要求。
[解决办法]
发送邮件现在应用得最多的两种情况就是利用.NET自带的发送邮件和利用jmail组件来发送邮件。
.NET自带的邮件发送利用了System.Web.Mail.MailMessage这个类,这是在VS2003的情况下,在VS2005下更多的是利用System.Net.Mail.MailMessage,下面的例子是在VS2003的情况下写的,请在应用的时候自己替换掉里面的参数。

string SendTos=SendTo.Text.Trim();  //发送人
string CcTos=CcTo.Text.Trim();    //抄送人
string[] Receiver=System.Text.RegularExpressions.Regex.Split(SendTos+CcTos, ", "); //总收件人
string FromMail= "ustbwuyi1@163.com ";//发件人
string Title= "你好 "; //邮件主题
string Body= "附件里重要文档,请查收! "; //邮件主体
string ShowName= "ustbwuyi ";//显示名字

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

//密码
string MailPassword= "ustbwuyi ";
System.Web.Mail.MailMessage mailmessage=new MailMessage();
mailmessage.From=FromMail;
mailmessage.Subject=Title;
mailmessage.Body=Body;

//添加附件

ArrayList FileNames;
//如果存在附件
if(FileNames.Count> =1)
...{
//添加附件
string Filename;
for(int k=0;k <FileNames.Count;k++)
...{
Filename=FileNames[k].ToString();
mailmessage.Attachments.Add(new MailAttachment(Filename));
}
}
}
mailmessage.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate ",1);
mailmessage.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/sendusername ",MailUserName);
mailmessage.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/sendpassword ",MailPassword);


//向收件人和抄送人循环发送
for(int j=0;j <Receiver.Length;j++)
...{
mailmessage.To=Receiver[j].ToString();
System.Web.Mail.SmtpMail.SmtpServer= "smtp.163.com ";
try
...{
System.Web.Mail.SmtpMail.Send(mailmessage);
}
catch(Exception ex)
...{
Response.Write( " <script language= 'javascript '> alert( '邮件发送失败,请您和ustbwuyi联系(QQ:108556024)! ') </script> ");
}
}
}

上面的例子是利用163的SMTP邮件服务器来发送邮件,当然,如果你有自己的邮件服务器更好。


其次,是利用jmail组件来发送,现在jmail组件的版本很多,在这里我个人推荐jmail4.4pro版本,因为如果你要收邮件的话,必须用pro版本,另外,个人经过测试了其它几个版本,发现只有这个版本不会出现附件丢失的情况,其他几个版本都会出现附件丢失或者损坏的情况,这个对txt文件来说没有影响,但是对于传送图片或者其他的一些压缩文件,会发现从pop服务器上下过来的附件有一些损坏,从而不能正常打开文件。下面是jmail发送邮件的代码。


jmail.MessageClass MyMail = new jmail.MessageClass();

string SendTos=SendTo.Text.Trim();  //发送人
string CcTos=CcTo.Text.Trim();    //抄送人
string[] Receiver=System.Text.RegularExpressions.Regex.Split(SendTos+CcTos, ", "); //总收件人


string FromMail= "ustbwuyi1@163.com ";//发件人
string Title= "你好 "; //邮件主题
string Body= "附件里是重要文档,请查收! "; //邮件主体
string ShowName= "ustbwuyi ";//显示名字
//取email的@前面部分为用户名,即ustbwuyi1,当然也可以自己设置.
string MailUserName=FromMail.Substring(0,FromMail.IndexOf( "@ "));
string MailPassword= "ustbwuyi ";
if(SendTos!= " " || CcTos!= " ")
...{

// 字符集
MyMail.Charset = "GB2312 ";
//附件的编码格式
MyMail.Encoding = "BASE64 ";
/**//**//**/////是否将信头编码成iso-8859-1字符集
MyMail.ISOEncodeHeaders = false;
//发送人邮件地址
MyMail.From = FromMail;
//发送人姓名
MyMail.FromName = ShowName;
// 邮件主题
MyMail.Subject =Title;
//身份验证的用户名
MyMail.MailServerUserName = MailUserName;
//用户密码
MyMail.MailServerPassWord = MailPassword;
//邮件内容
MyMail.Body = Body;
ArrayList FileNames;
//如果存在附件
if(FileNames.Count> =1)
...{
//添加附件
string Filename;
for(int k=0;k <FileNames.Count;k++)
...{
Filename=FileNames[k].ToString();
MyMail.AddAttachment(Filename,false,HttpUtility.UrlDecode(Filename.Substring(Filename.LastIndexOf( ". ")+1,3)));
}
}

try
...{
//循环发送
for(int i=0;i <Receiver.Length;i++)
...{
MyMail.AddRecipient(Receiver[i], " ", " ");
MyMail.Send( "Mail.rshi.cn ",false);
}


}
catch(Exception ex)
...{
Response.Write( " <script language= 'javascript '> alert( '邮件发送失败,请您和ustbwuyi联系(QQ:108556024)! ') </script> ");

}
}

读书人网 >asp.net

热点推荐