标题:WinForm 发送邮件问题
只看楼主
centaur
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-2-1
 问题点数:0 回复次数:8 
WinForm 发送邮件问题
各位大虾,小弟的问题是:在用MailMessage发送邮件时,为什么body里不能换行啊?

try
{
string strbody;
strbody = "你好!\n" ;
strbody = strbody + "这是第一封信";
this.label1.Text = strbody;
MailMessage aMessage=new MailMessage();
aMessage.From=发信人邮箱;
aMessage.To=收信人邮箱;
aMessage.Subject=this.label5.Text;
aMessage.Body = strbody;
SmtpMail.Send(aMessage);
MessageBox.Show("已发送到收信人邮箱");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
当没有加这个\n时,邮件可以发送出去,但是加了就不行,但是this.label1.Text 里显示分行成功。
请问怎么在body里面进行分行啊?还有在body里可以对信的内容进行各种编辑吗?求救!!!
搜索更多相关主题的帖子: WinForm 邮件 
2007-04-25 13:14
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 

\r\n


飘过~~
2007-04-25 14:46
centaur
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-2-1
得分:0 
bygg,谢谢了。我用你的方法试了,确实分行成功。
我现在还有问题,就是怎么样把datagrid里的数据放到邮件里,不是附件的形式。
2007-04-25 15:35
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
你想以什么样的形式来放入到邮件中??

飘过~~
2007-04-25 15:57
centaur
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-2-1
得分:0 

bygg,很感谢你。
其实我要发送的邮件,因为数据少,所以不允许使用附件,按照一定的格式进行发送。

你好:
这是最新的计划提出状况:
店舗名 提出状況 更新日付
a店铺 已提出 2006/12/12
b店铺 等待确认 2006/12/12
请相关者进行确认。

这红色部分就是邮件的body部分。
现在我已经把要的量(店舗名 提出状況 更新日付 )都抽出,而且都放到richtextbox里,以便读取。在窗体上也显示出来了。
private void Form1_Load(object sender, System.EventArgs e)
{
SqlConnection Conn = new SqlConnection();
SqlCommand sqlcmd = new SqlCommand();
SqlDataAdapter sqlada = new SqlDataAdapter();
DataSet ds = new DataSet();

Conn.ConnectionString = "server=TAODEV098;database=GeKan;uid=sa;pwd=;";
sqlcmd.Connection = Conn;
sqlcmd.CommandText = "dbo.test";
sqlcmd.CommandType=CommandType.StoredProcedure;
sqlada.SelectCommand = sqlcmd;
Conn.Open();
sqlada.Fill(ds,"tb");
this.dataGrid1.SetDataBinding(ds,"tb");
string richtext = "";
for(int i=0;i<ds.Tables["tb"].Rows.Count;i++)
{
richtext = "";
for(int j=0;j<3;j++)
{
richtext = richtext + " " + ds.Tables["tb"].Rows[i].ItemArray[j].ToString();
}
this.richTextBox1.SelectedText = richtext + "\r\n";
}
string strtext=this.richTextBox1.SelectedText;
}

在发送按钮里面的代码是:
private void SendButton_Click(object sender, System.EventArgs e)
{

try
{
MailMessage aMessage=new MailMessage();
aMessage.From=发信人邮箱;
aMessage.To=收信人邮箱;
aMessage.Subject=this.label5.Text;
aMessage.Body = "你好:\r\n" ;
aMessage.Body = aMessage.Body + "这是最新的计划提出状况\r\n";
aMessage.Body = aMessage.Body + this.richTextBox1.text;
SmtpMail.Send(aMessage);
MessageBox.Show("已发送到收信人邮箱");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}


运行的结果是说 已发送到收信人邮箱 ,可是收信人就是没有收到。

2007-04-25 16:48
centaur
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-2-1
得分:0 

对不起,能发出,刚收到,但是richTextBox1的内容没有添加上,不知道为什么。
aMessage.Body = aMessage.Body + this.richTextBox1.text;
这个地方,我也用了下面的代码行
aMessage.Body = aMessage.Body + this.richTextBox1.SelectedText;

是不是因为这个地方,而使body无法接受呢?



2007-04-25 16:58
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
Text是richTextBox中的所有文本.
SelectedText是你选择的文本.

飘过~~
2007-04-25 17:29
centaur
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-2-1
得分:0 
可是我两个都尝试利用了,为什么不能把值传给aMessage.Body?
2007-04-25 17:37
centaur
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-2-1
得分:0 
aMessage.Body = aMessage.Body + this.richTextBox1.text;

this.richTextBox1.text 已经能获得值了,但是一运行就是送信失败。
2007-04-25 17:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-134823-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.194026 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved