我想以asp.net形式发送邮件,这是我的编码
protected void Button1_Click(object sender, EventArgs e)
{
SmtpClient smtp = new SmtpClient("192.168.1.2",Convert.ToInt32 (25));
System.Net.NetworkCredential cre = new System.Net.NetworkCredential();
smtp.Credentials = cre;
MailMessage message = new MailMessage();
message.To.Add(new MailAddress("uamrit@gmail.com"));
message.IsBodyHtml = true;
message.Body = "<html><head><body><p> this is Demo for sending mail. </p></body></head></html>";
message.Subject=("response from the web sitre");
message.From = new MailAddress("uamrit@gmail.com");
try
{
smtp.EnableSsl = false;
smtp.UseDefaultCredentials = true;
smtp.Send(message);
Response.Write("Your Email has been sent sucessfully -");
}
catch (Exception exc)
{
Response.Write("Send failure: " + exc.ToString());
}
}
web.config中的
<system.net>
<mailSettings>
<smtp from="uamrit@gmail.com">
<network host="192.168.1.299" port="25" userName="uamrit" password="*****"/>
</smtp>
</mailSettings>
</system.net>
此节目邮件发送成功,但当我们检查我的Gmail帐户时,没有一封邮件告诉我为什么会这样。 什么程序发送邮件 请给我完整的编码
答案 0 :(得分:1)
可能有多种原因。您是否检查过垃圾邮件收件箱?此外,我发现您假装通过其他服务器从GMAIL帐户发送电子邮件,我相信GMAIL不会喜欢它,并将您的电子邮件地址列入黑名单。
如果您打算使用GMAIL,那么为什么不使用GMAIL SMTP settings?
答案 1 :(得分:0)
在您的配置中,您定义了用户名和密码 - 但是,在您的代码中,您指定了
smtp.UseDefaultCredentials = true;
您需要决定使用哪一个 - 默认凭据或配置中的用户名/密码?
我认为如果您在配置中定义了用户名/密码,则不希望通过指定UseDefaultCredentials = true...
如果这不能解决您的问题,我会尝试指定SMTP邮件转到您选择的目录,并查看是否真的创建了邮件(存储为该目录中的*.eml
个文件)一点都不为此,请使用此配置:
<system.net>
<mailSettings>
<smtp from="uamrit@gmail.com" deliveryMethod="specifiedPickupDirectory">
<specifiedPickupDirectory>C:\temp\mails</specifiedPickupDirectory>
</smtp>
</mailSettings>
</system.net>
您需要确保已定义的目录已存在!