如何从内部发送电子邮件noreply@example.com另一个使用smtp的人



我正在创建一个应用程序,它会发送我一周锻炼了多少小时的PDF。我正在使用C#使用Visual Studio 2017。我把它设置好了,这样程序就会把我编的一封随机电子邮件中计算出的时间发给你。

我希望它在内部发送,这样路由器就会允许内部虚构的地址,比如noreply@example.com这样某人就可以收到pdf,但它不会是一封真正的电子邮件。我刚刚使用了一封虚构的电子邮件,这不是我想要的方式。

看看SmtpClient类。

使用上述类的C#示例可以在链接中找到,但我将其复制到这里以供后人使用。您会注意到"from"地址实际上只是一个字符串,它不必是有效的。

using System;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
using System.Threading;
using System.ComponentModel;
namespace Examples.SmptExamples.Async
{
public class SimpleAsynchronousExample
{
static bool mailSent = false;
private static void SendCompletedCallback(object sender, AsyncCompletedEventArgs e)
{
// Get the unique identifier for this asynchronous operation.
String token = (string) e.UserState;
if (e.Cancelled)
{
Console.WriteLine("[{0}] Send canceled.", token);
}
if (e.Error != null)
{
Console.WriteLine("[{0}] {1}", token, e.Error.ToString());
} else
{
Console.WriteLine("Message sent.");
}
mailSent = true;
}
public static void Main(string[] args)
{
// Command line argument must the the SMTP host.
SmtpClient client = new SmtpClient(args[0]);
// Specify the e-mail sender.
// Create a mailing address that includes a UTF8 character
// in the display name.
MailAddress from = new MailAddress("jane@contoso.com", 
"Jane " + (char)0xD8+ " Clayton", 
System.Text.Encoding.UTF8);
// Set destinations for the e-mail message.
MailAddress to = new MailAddress("ben@contoso.com");
// Specify the message content.
MailMessage message = new MailMessage(from, to);
message.Body = "This is a test e-mail message sent by an application. ";
// Include some non-ASCII characters in body and subject.
string someArrows = new string(new char[] {'u2190', 'u2191', 'u2192', 'u2193'});
message.Body += Environment.NewLine + someArrows;
message.BodyEncoding =  System.Text.Encoding.UTF8;
message.Subject = "test message 1" + someArrows;
message.SubjectEncoding = System.Text.Encoding.UTF8;
// Set the method that is called back when the send operation ends.
client.SendCompleted += new 
SendCompletedEventHandler(SendCompletedCallback);
// The userState can be any object that allows your callback 
// method to identify this send operation.
// For this example, the userToken is a string constant.
string userState = "test message1";
client.SendAsync(message, userState);
Console.WriteLine("Sending message... press c to cancel mail. Press any other key to exit.");
string answer = Console.ReadLine();
// If the user canceled the send, and mail hasn't been sent yet,
// then cancel the pending operation.
if (answer.StartsWith("c") && mailSent == false)
{
client.SendAsyncCancel();
}
// Clean up.
message.Dispose();
Console.WriteLine("Goodbye.");
}
}
}

相关内容

最新更新