Письма на мыло от сайта

Письма на мыло от сайта

#1 12 июня 2013 в 20:35
При каких либо действиях на сайте приходит извещения на мыло, например кто то оставил комментарий, пришло письмо в нем текст и ссылка на комментарий, но это ссылка не активна она как текст, подскажите как сделать чтоб в письмах которые приходят от сайта ссылки были активны-кликабельны.А то как то не удобно получается пришло письмо надо ссылку скопировать а кто не знает что надо что то копировать и откуда копировать и куда.Думаю решения этой проблемы многих заинтересует.
Спасибо.
#2 12 июня 2013 в 20:46
/includes/letters там текстовые файлы, в них тупо прописывайте html-теги по типу <a href="......">....</a> там. где должны быть ссылки

например:


------------------------------------------------
Инструкция по активации
------------------------------------------------

Бла-бла-бла...

Для активации Вашего аккаунта, зайдите по следующей ссылке:

<a href="{codelink}">{codelink}</a>

Бла-бла-бла...

#3 12 июня 2013 в 21:17
Вот спасибочки помогло, а вот с восстановления пароля как быть? письмо формируется в файле frontend.php компонента регистрация
вот вроде код
  1.  
  2. if ($do=='sendremind'){
  3.  
  4. $inPage->setTitle($_LANG['REMINDER_PASS']);
  5. $inPage->addPathway($_LANG['REMINDER_PASS']);
  6.  
  7. if (!cmsCore::inRequest('goremind')){
  8.  
  9. $smarty = $inCore->initSmarty('components', 'com_registration_sendremind.tpl');
  10. $smarty->display('com_registration_sendremind.tpl');
  11.  
  12. } else {
  13.  
  14. if(!cmsCore::validateForm()) { cmsCore::error404(); }
  15.  
  16. $email = cmsCore::request('email', 'email', '');
  17. if(!$email) { cmsCore::addSessionMessage($_LANG['ERR_EMAIL'], 'error'); cmsCore::redirectBack(); }
  18.  
  19. $usr = cmsUser::getShortUserData($email);
  20. if(!$usr) {
  21. cmsCore::addSessionMessage($_LANG['ADRESS'].' "'.$email.'" '.$_LANG['NOT_IN_OUR_BASE'], 'error');
  22. cmsCore::redirectBack();
  23. }
  24.  
  25. $usercode = md5($usr['id'] . '-' . $usr['login'] . '-' . $usr['password'] . '-' . $usr['logdate'].PATH);
  26. $newpass_link = HOST.'/registration/remind/' . $usercode;
  27.  
  28. $mail_message = $_LANG['HELLO'].', ' . $usr['nickname'] . '!'. "\n\n";
  29. $mail_message .= $_LANG['REMINDER_TEXT'].' "'.$inConf->sitename.'".' . "\n\n";
  30. $mail_message .= $_LANG['YOUR_LOGIN'].': ' .$usr['login']. "\n\n";
  31. $mail_message .= $_LANG['NEW_PASS_LINK'].":\n" .$newpass_link . "\n\n";
  32. $mail_message .= $_LANG['LINK_EXPIRES']. "\n\n";
  33. $mail_message .= $_LANG['SIGNATURE'].', '. $inConf->sitename . ' ('.HOST.').' . "\n";
  34. $mail_message .= date('d-m-Y (H:i)');
  35.  
  36. $inCore->mailText($email, $inConf->sitename.' - '.$_LANG['REMINDER_PASS'], $mail_message);
  37.  
  38. cmsCore::addSessionMessage($_LANG['NEW_PAS_SENDED'], 'info');
  39.  
  40. cmsUser::clearCsrfToken();
  41.  
  42. cmsCore::redirect('/users');
  43.  
  44. }
  45.  
  46. }
  47.  
А если точнее то вроде вот ета строка формирует ссылку
  1.  
  2. $mail_message .= $_LANG['NEW_PASS_LINK'].":\n" .$newpass_link . "\n\n";
  3.  
как ее сделать кликкабельной?
#4 12 июня 2013 в 23:40

с восстановления пароля как быть

st.Puh

упс… я не в курррсе ррребята))) сорри
#5 13 июня 2013 в 00:16

, а вот с восстановления пароля как быть? письмо формируется в файле frontend.php

st.Puh
тоже задавал на днях такой вопрос, но немного в другой формулировке)
instantcms.ru/forum/thread15379.html

Пока молчат все как партизаны) можно вроде и в frontend"е, html прописать, но чет кажется что правильней вынести как и остальные уведомления...

Ну и если кто знает как заголовки и где отредактировать, для всех отсылаемых уведомлений, буду рад услышать!)
А то в спам начинают письма попадать именно из-за схожести непонятно какой)) я все изменил, кроме восстановления пароля, осталось заголовки найти...

Еще хоро бы в уведомлении по имени к юзеру обращаться, а не просто "привет!"
Проанализировав свою почту, там где обращение по имени, письма лучше воспринимаются)
#6 13 июня 2013 в 00:19
Кстати попутный вопрос)

текстовые файлы, в них тупо прописывайте html-теги по типу <a href="......">....</a> там. где должны быть ссылки

Карагандинец
Это что получается, параллельно в каком формате письмо отправлено?
Если есть html разметка в тексте, то она будет обработана даже в plain text?)
#7 13 июня 2013 в 11:18
Я у себя был поменял функцию
  1. public function mailText($email, $subject, $message, $content='text/plain'){
на
  1. public function mailText($email, $subject, $message, $content='text/html'){
задем в файлах россылки вставил <a href="{codelink}">{codelink}</a> но приходили письма как и прежде с текстовими ссылками, подумал что чтото не то делаю и создал тему здесь, но оказалось как только функцию переделал из html назад в plain сссылки стали кликабельны.А вот ещо вопрос в файлах россылки ниже ссылки например на оставленный коментарий есть ещо текст к примеру что письмо сформировано автоматом и отвечать на него не надо, но все что ниже ссылки в письме не приходит, так было с самого начала до внесения кликабельных ссылок
#8 13 июня 2013 в 11:30
Вот код который выкладывали здесь, письмо приходит как страница в html заменить содержимое файла newforumpost.txt ну и siti.ru заменить на свой.
  1.  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html><head><title>Форум - в Господе</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><style type="text/css">
  4. /* Mobile-specific Styles */
  5. @media only screen and (max-device-width: 480px) {
  6. table[class=w0], td[class=w0] { width: 0 !important; }
  7. table[class=w10], td[class=w10], img[class=w10] { width:10px !important; }
  8. table[class=w15], td[class=w15], img[class=w15] { width:5px !important; }
  9. table[class=w30], td[class=w30], img[class=w30] { width:10px !important; }
  10. table[class=w60], td[class=w60], img[class=w60] { width:10px !important; }
  11. table[class=w125], td[class=w125], img[class=w125] { width:80px !important; }
  12. table[class=w130], td[class=w130], img[class=w130] { width:55px !important; }
  13. table[class=w140], td[class=w140], img[class=w140] { width:90px !important; }
  14. table[class=w160], td[class=w160], img[class=w160] { width:180px !important; }
  15. table[class=w170], td[class=w170], img[class=w170] { width:100px !important; }
  16. table[class=w180], td[class=w180], img[class=w180] { width:80px !important; }
  17. table[class=w195], td[class=w195], img[class=w195] { width:80px !important; }
  18. table[class=w220], td[class=w220], img[class=w220] { width:80px !important; }
  19. table[class=w240], td[class=w240], img[class=w240] { width:180px !important; }
  20. table[class=w255], td[class=w255], img[class=w255] { width:185px !important; }
  21. table[class=w275], td[class=w275], img[class=w275] { width:135px !important; }
  22. table[class=w280], td[class=w280], img[class=w280] { width:135px !important; }
  23. table[class=w300], td[class=w300], img[class=w300] { width:140px !important; }
  24. table[class=w325], td[class=w325], img[class=w325] { width:95px !important; }
  25. table[class=w360], td[class=w360], img[class=w360] { width:140px !important; }
  26. table[class=w410], td[class=w410], img[class=w410] { width:180px !important; }
  27. table[class=w470], td[class=w470], img[class=w470] { width:200px !important; }
  28. table[class=w580], td[class=w580], img[class=w580] { width:280px !important; }
  29. table[class=w640], td[class=w640], img[class=w640] { width:300px !important; }
  30. table[class*=hide], td[class*=hide], img[class*=hide], p[class*=hide], span[class*=hide] { display:none !important; }
  31. table[class=h0], td[class=h0] { height: 0 !important; }
  32. p[class=footer-content-left] { text-align: center !important; }
  33. #headline p { font-size: 30px !important; }
  34. .article-content, #left-sidebar{ -webkit-text-size-adjust: 90% !important; -ms-text-size-adjust: 90% !important; }
  35. .header-content, .footer-content-left {-webkit-text-size-adjust: 80% !important; -ms-text-size-adjust: 80% !important;}
  36. img { height: auto; line-height: 100%;}
  37. }
  38. /* Client-specific Styles */
  39. #outlook a { padding: 0; } /* Force Outlook to provide a "view in browser" button. */
  40. body { width: 100% !important; }
  41. .ReadMsgBody { width: 100%; }
  42. .ExternalClass { width: 100%; display:block !important; } /* Force Hotmail to display emails at full width */
  43. /* Reset Styles */
  44. /* Add 100px so mobile switch bar doesn't cover street address. */
  45. body { background-color: #ececec; margin: 0; padding: 0; }
  46. img { outline: none; text-decoration: none; display: block;}
  47. br, strong br, b br, em br, i br { line-height:100%; }
  48. h1, h2, h3, h4, h5, h6 { line-height: 100% !important; -webkit-font-smoothing: antialiased; }
  49. h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { color: blue !important; }
  50. h1 a:active, h2 a:active, h3 a:active, h4 a:active, h5 a:active, h6 a:active { color: red !important; }
  51. /* Preferably not the same color as the normal header link color. There is limited support for psuedo classes in email clients, this was added just for good measure. */
  52. h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited { color: purple !important; }
  53. /* Preferably not the same color as the normal header link color. There is limited support for psuedo classes in email clients, this was added just for good measure. */
  54. table td, table tr { border-collapse: collapse; }
  55. .yshortcuts, .yshortcuts a, .yshortcuts a:link,.yshortcuts a:visited, .yshortcuts a:hover, .yshortcuts a span {
  56. color: black; text-decoration: none !important; border-bottom: none !important; background: none !important;
  57. } /* Body text color for the New Yahoo. This example sets the font of Yahoo's Shortcuts to black. */
  58. /* This most probably won't work in all email clients. Don't include <code _tmplitem="358" > blocks in email. */
  59. code {
  60. white-space: normal;
  61. word-break: break-all;
  62. }
  63. #background-table { background-color: #ececec; }
  64. /* Webkit Elements */
  65. #top-bar { border-radius:6px 6px 0px 0px; -moz-border-radius: 6px 6px 0px 0px; -webkit-border-radius:6px 6px 0px 0px; -webkit-font-smoothing: antialiased; background-color: #556c90; color: #d9fffd; }
  66. #top-bar a { font-weight: bold; color: #d9fffd; text-decoration: none;}
  67. #footer { border-radius:0px 0px 6px 6px; -moz-border-radius: 0px 0px 6px 6px; -webkit-border-radius:0px 0px 6px 6px; -webkit-font-smoothing: antialiased; }
  68. /* Fonts and Content */
  69. body, td { font-family: 'Helvetica Neue', Arial, Helvetica, Geneva, sans-serif; }
  70. .header-content, .footer-content-left, .footer-content-right { -webkit-text-size-adjust: none; -ms-text-size-adjust: none; }
  71. /* Prevent Webkit and Windows Mobile platforms from changing default font sizes on header and footer. */
  72. .header-content { font-size: 12px; color: #d9fffd; }
  73. .header-content a { font-weight: bold; color: #d9fffd; text-decoration: none; }
  74. #headline p { color: #d9fffd; font-family: 'Helvetica Neue', Arial, Helvetica, Geneva, sans-serif; font-size: 36px; text-align: center; margin-top:0px; margin-bottom:30px; }
  75. #headline p a { color: #d9fffd; text-decoration: none; }
  76. .article-title { font-size: 18px; line-height:24px; color: #c25130; font-weight:bold; margin-top:0px; margin-bottom:18px; font-family: 'Helvetica Neue', Arial, Helvetica, Geneva, sans-serif; }
  77. .article-title a { color: #c25130; text-decoration: none; }
  78. .article-title.with-meta {margin-bottom: 0;}
  79. .article-meta { font-size: 13px; line-height: 20px; color: #ccc; font-weight: bold; margin-top: 0;}
  80. .article-content { font-size: 13px; line-height: 18px; color: #444444; margin-top: 0px; margin-bottom: 18px; font-family: 'Helvetica Neue', Arial, Helvetica, Geneva, sans-serif; }
  81. .article-content a { color: #3f6569; font-weight:bold; text-decoration:none; }
  82. .article-content img { max-width: 100% }
  83. .article-content ol, .article-content ul { margin-top:0px; margin-bottom:18px; margin-left:19px; padding:0; }
  84. .article-content li { font-size: 13px; line-height: 18px; color: #444444; }
  85. .article-content li a { color: #3f6569; text-decoration:underline; }
  86. .article-content p {margin-bottom: 15px;}
  87. .footer-content-left { font-size: 12px; line-height: 15px; color: #d9fffd; margin-top: 0px; margin-bottom: 15px; }
  88. .footer-content-left a { color: #d9fffd; font-weight: bold; text-decoration: none; }
  89. .footer-content-right { font-size: 11px; line-height: 16px; color: #d9fffd; margin-top: 0px; margin-bottom: 15px; }
  90. .footer-content-right a { color: #d9fffd; font-weight: bold; text-decoration: none; }
  91. #footer { background-color: #425470; color: #d9fffd; }
  92. #footer a { color: #d9fffd; text-decoration: none; font-weight: bold; }
  93. #permission-reminder { white-space: normal; }
  94. #street-address { color: #d9fffd; white-space: normal; }
  95. </style>
  96. <!--[if gte mso 9]>
  97. <style _tmplitem="358" >
  98. .article-content ol, .article-content ul {
  99. margin: 0 0 0 24px;
  100. padding: 0;
  101. list-style-position: inside;
  102. }
#9 13 июня 2013 в 12:04

Вот код который выкладывали здесь, письмо приходит как страница в html

st.Puh
письмо можно оформить как угодно, к примеру используя визупльный встроенный редактор для статей!
Просто в нужных местах вставляем переменные чтоб выглядело таким образом
<a href="{codelink}">{codelink}</a>

Потом копируем исходный вариант и вставляем в newforumpost.txt или другой шаблон!)

но оказалось как только функцию переделал из html назад в plain сссылки стали кликабельны

st.Puh
у меня в html все кликабельно)

кстати, оформлял я без:
  1.  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html><head><title>.........
  4.  
Делал просто как статью, все замечательно работает
#10 13 июня 2013 в 12:19
Еще замечу что есть смысл говорить к какому мылу относится то или иное замечание, та как они все обрабатывают письма немного по своему)
Допустим гугл любые текстовые ссылки сам переводит в кликабельные, даже когда идет просто упопминание домена без приставки h_ttp://
хлтя возможно у меня настройки там какие то особенные)
#11 13 июня 2013 в 15:00

Это что получается, параллельно в каком формате письмо отправлено?
Если есть html разметка в тексте, то она будет обработана даже в plain text?)

reload

если есть хтмл в тексте, то он самим почтовиком (майл ру, гмайл, яндекс, и т.д.) обрабатывается при получении юзером письма)))
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.