我设法创建了一个简单的应用程序,它将发送带有特定文本的电子邮件,但我想知道这是否可以发送相同的电子邮件,但文本内容被复制到剪贴板?
在我的oMail.TextBody
中,我想粘贴剪贴板的内容并通过电子邮件发送。
static void Main(string[] server)
{
SmtpMail oMail = new SmtpMail("TryIt");
EASendMail.SmtpClient oSmtp = new EASendMail.SmtpClient();
// Set sender email address
oMail.From = "myEmail";
// Set recipient email address
oMail.To = "myEmail";
// Set email subject
oMail.Subject = "test email from c# project";
// Set email body
oMail.TextBody = "Clipboard content pasted here..."
}
有什么办法吗?另外,我是using EASendMail
名称空间。
答案 0 :(得分:0)
在控制台应用程序中,可以在某些线程状态中访问剪贴板,特别是STA。
请查看this SO question以获取解释。
所以,编写一个这样的静态方法:
static string GetClipboardText()
{
string result = string.Empty;
Thread staThread = new Thread(x =>
{
try
{
result = Clipboard.GetText();
}
catch (Exception ex)
{
result = ex.Message;
}
});
staThread.SetApartmentState(ApartmentState.STA);
staThread.Start();
staThread.Join();
return result;
}
并在主方法
中使用它oMail.TextBody = GetClipboardText();