1
我想獲得收件人&發件人從前端的電子郵件地址!自定義保存操作不發送電子郵件?
我創建了一個「自定義電子郵件發送」拯救行動在這個位置: 「Sitecore的/系統/模塊/設置/保存操作/」 &添加它放在一個表格的提交按鈕的保存操作。
在「自定義電子郵件發送」在「數據」部分行動內容標籤我宣佈「大會:.Helper,等級: .Helper.CustomEmail」
和「提交」科'參數' 字段我宣佈: 主機:smtp.gmail.com,端口:587,登錄:[email protected],密碼:*,IsBodyHtml:真,enableSSL:真
和「編輯器'fieldsection我已經聲明'Editor:control:SendMail.Editor'。
但在「自定義電子郵件發送的行動在形式上我沒有要輸入的值,CC的點擊,BCC等
而且在形式上我已經採取了三場「到」,「從」, '信息'。所有我想要的是
- 「我想從前端得到RECEIPIENT &發件人地址」
這是我在CustomEmail.cs類代碼:
public class CustomEmail : ISaveAction, ISubmit
{
public void Execute(Sitecore.Data.ID formid, AdaptedResultList fields, params object[] data)
{
NameValueCollection formData = new NameValueCollection();
foreach (AdaptedControlResult acr in fields)
{
formData[acr.FieldName] = acr.Value;
}
try
{
// get field values of form
string emailTo = formData["To"];
string emailFrom = formData["From"];
string personalMsg = formData["Message"];
bool result = false;
if (!string.IsNullOrEmpty(emailFrom) && !string.IsNullOrEmpty(emailTo))
{
// send mail
result = SendEmail(emailTo, emailFrom, personalMsg);
}
// if mail sending fail then show error massege
if (result == false)
{
Sitecore.Diagnostics.Log.Error("Some error occcured while sending email", this);
}
}
catch (Exception ex)
{
Sitecore.Diagnostics.Log.Error(ex.Message.ToString(), this);
}
}
#region SendEmail function
/// <summary>
/// send mail
/// </summary>
/// <param name="To"></param>
/// <param name="From"></param>
/// <param name="Message"></param>
public static bool SendEmail(string To, string From, string Message)
{
bool result = true;
try
{
MailMessage mailMsg = new MailMessage();
MailAddress mailFrom = new MailAddress(From);
mailMsg.From = mailFrom;
try
{
MailAddress mailTo = new MailAddress(To);
mailMsg.To.Add(mailTo);
}
catch
{
}
mailMsg.Body = Message;
mailMsg.IsBodyHtml = true;
var smtp = new SmtpClient(Sitecore.Configuration.Settings.MailServer, Sitecore.Configuration.Settings.MailServerPort);
smtp.EnableSsl = true;
smtp.Send(mailMsg);
}
catch
{
result = false;
}
return result;
}
#endregion
public void Submit(Sitecore.Data.ID formid, AdaptedResultList fields)
{
Execute(formid, fields);
}
#region IOnLoad Members
public void OnLoad(bool isPostback, RenderFormArgs args)
{
}
#endregion
}
在網頁.config我添加了代碼:
<setting name="MailServer" value="smtp.gmail.com" />
<setting name="MailServerUserName" value="***@gmail.com" />
<setting name="MailServerPassword" value="***" />
<setting name="MailServerPort" value="587" />
<system.net>
<mailSettings>
<smtp deliveryMethod="Network">
<network enableSsl="true" />
</smtp>
</mailSettings>
</system.net>
我得到這個異常:
- SMTP服務器需要安全連接或客戶端不是 進行身份驗證。服務器響應是:5.5.1身份驗證 必需。瞭解更多信息
請解決此問題。
這個。 Gmail的SMTP服務器絕對需要認證 – ddysart
現在是它的工作。但如果想從前端(意味着從字段)採取「發件人」,並且不想提供用戶名和密碼,那麼該怎麼辦? –