【发布时间】:2011-01-11 11:20:41
【问题描述】:
我最近接手了负责管理一个由前雇员在 asp.net 中构建的客户网站。 (谁急着为所说的客户工作!)
该公司将在不久的将来迁移到 php 平台,但在此之前他们会遇到一些电子邮件传递问题。 注意:我不精通asp.net
现在,该客户网站上的任何代码最近都没有更改。 我们将它们托管在英国 Namesco 的经销商托管帐户上。
我认为问题在于 SMTP 服务器不允许这些电子邮件通过。但是我在代码中找不到 SMTP 地址设置在哪里?
有关此客户端设置的一些背景信息:
他们有两个网站,主站点的域名以 .co.uk 结尾 然后一个单独的站点,其域以 .tv 结尾
网站表单的 .co.uk 和 .tv 代码完全相同。 .co.uk 电子邮件正在通过,但 .tv 电子邮件突然停止。
当潜在客户填写网络表单并点击发送时。该脚本调用了一个数据库,该数据库在电子邮件中添加了一些额外的文本并添加了 FROM 地址:
例如 noreply@customersite.tv noreply@customersite.co.uk
如果 FROM: 地址从 .tv 更改为 .co.uk,则从 .tv 网站网络表单发送的电子邮件确实会成功到达。所以对我来说,问题是 SMTP 服务器不再喜欢 .tv FROM 地址了?
所以客户仍然可以收到他们的电子邮件,但这会扰乱他们设置的一些邮箱过滤。所以他们想像以前一样工作。
这是联系我们页面的 aspx.cs 文件中的代码:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Configuration;
using System.Web.Mail;
using System.Text;
public partial class contactus : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.Master.FindControl("divMasterContactForm").Visible = false;
this.Master.FindControl("contactFormHeader").Visible = false;
}
protected void butSubmit_Click(object sender, ImageClickEventArgs e)
{
string strConnection, strCommand, strPage;
strPage = Request.Url.ToString();
strConnection = ConfigurationManager.ConnectionStrings["dbString"].ConnectionString;
strCommand = "SELECT * FROM [mailOptions] WHERE [url] LIKE 'customerswebsite.tv'";
StringBuilder strBody = new StringBuilder();
SqlConnection myConnection = new SqlConnection(strConnection);
SqlCommand myCommand = new SqlCommand(strCommand);
myCommand.Connection = myConnection;
myConnection.Open();
try
{
SqlDataReader myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
strBody.Append("<html><body><font face='Arial'><br>");
strBody.Append(txtQuery.Text);
strBody.Append("<br><br>Regards,<br><br>");
strBody.Append(txtFirstName.Text + " " + txtLastName.Text);
strBody.Append("<br><br>Telephone number: " + txtPhone.Text);
strBody.Append("<br><br>Mobile Number: " + txtMobile.Text);
strBody.Append("<br><br>Email Address: <a href=mailto:" + txtEmail.Text + ">" + txtEmail.Text + "</a></font></body></html>");
MailMessage msgMail = new MailMessage();
msgMail.To = myReader["to"].ToString();
msgMail.Bcc = "info@ourwebdesignfirm.com";
msgMail.From = myReader["from"].ToString();
msgMail.Subject = ddQueryType.SelectedValue + " From: " + txtFirstName.Text + " " + txtLastName.Text + ". Generated from " + myReader["leadSource"].ToString();
msgMail.BodyFormat = MailFormat.Html;
msgMail.Body = strBody.ToString();
//lblConfirmation.Text = strBody.ToString();
SmtpMail.Send(msgMail);
panForm.Visible = false;
panConfirm.Visible = true;
lblSubject.Text = ddQueryType.SelectedValue;
lblFrom.Text = txtEmail.Text;
lblBody.Text = txtQuery.Text;
lblFirstName.Text = txtFirstName.Text;
lblLastName.Text = txtLastName.Text;
lblDate.Text = DateTime.Now.ToLongDateString();
lblTime.Text = DateTime.Now.ToShortTimeString();
}
myReader.Close();
}
catch
{
lblConfirmation.Text = "Sorry I broke part way through, please call us instead on the number above.";
}
myConnection.Close();
}
}
目前我的问题是我无法测试或跟踪这些电子邮件的路径,因为我找不到这些电子邮件使用的 SMTP 服务器? 任何帮助表示赞赏
【问题讨论】:
-
谁能回答这个问题:如果 SMTP 服务器位置未在此代码中的任何位置声明,它如何发送电子邮件?