我有一个包含图像的Rails3邮件程序布局.
这些使用如下:
image_tag("emails/top.gif", :width => "700", :height => "10", :alt => "")
Run Code Online (Sandbox Code Playgroud)
从Rails 2开始,这些图像包括主机并产生了预期的结果.但是,由于Rails3 config.action_mailer.default_url_options
似乎被忽略了.
有什么我想念的吗?
更新
我的config/environment/development.rb包括:
config.action_mailer.default_url_options = { :host => 'mydomain.tld' }
Run Code Online (Sandbox Code Playgroud) 在运行时UserMailer.new.perform
,我的邮件程序已经发送,我几乎立即收到了一封电子邮件,但是当我使用时UserMailer.perform_async
,它会回吐一个对象号码而我从未收到过电子邮件.
有人可以告诉我为什么会这样,这两种方法有什么区别?
我正在使用ActionMailer发送测试邮件.正在呈现模板,邮件正在传递.唯一的问题是Google在邮件正文中显示了mimepart和其他标题数据.
这是邮寄的代码..
def testing
mail(:to => "apoorvparijat@gmail.com",:subject => "html mailer", :content_type => "text/html") do |format|
format.html { render 'testing' }
format.text { render :text => "bing" }
end
end
Run Code Online (Sandbox Code Playgroud)
这是收到的电子邮件.
----==_mimepart_508fd46252b8c_8023fe595835ad0479a6 Date: Tue, 30 Oct 2012 18:51:38 +0530
Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit
Content-ID: <508fd46254ea7_8023fe595835ad0480b8@Apoorv-Parijats-MacBook-Pro-2.local.mail>
bing ----==_mimepart_508fd46252b8c_8023fe595835ad0479a6 Date: Tue, 30 Oct 2012 18:51:38
+0530 Mime-Version: 1.0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding:
7bit Content-ID: <508fd46256465_8023fe595835ad04819c@Apoorv-Parijats-MacBook-Pro-
2.local.mail> Hi bing
column 1 column 2
----==_mimepart_508fd46252b8c_8023fe595835ad0479a6--
Run Code Online (Sandbox Code Playgroud)
控制台输出 -
Loading development environment (Rails 3.2.2) …
Run Code Online (Sandbox Code Playgroud) 我在Devise中发送确认电子邮件时遇到了一些问题.这就是我想为此功能编写测试的原因.当我不创建自己的邮件时,我怎么能这样做?
我决定,这应该足够了:
it 'should send an email' do
user
put :complete, params
user.send(:send_confirmation_notification?).should == true
end
Run Code Online (Sandbox Code Playgroud)
如果我错过了什么,请告诉我.
我需要使用CI向cc提供的多个用户发送电子邮件.我的代码如下所示:以下代码适用于为单个用户发送电子邮件,但我需要同时向多个用户发送相同的消息.
$this->load->library('email', $config);
$to = 'User email address here';
$subject = 'Alert information On Products';
$message = "Dear user,Our new product has been launched.Please visit our site for more informations";
$this->load->library('email');
// from address
$this->email->from('admin_email_address');
$this->email->to($to); // to Email address
$this->email->cc('email_address_one');
$this->email->subject($subject); // email Subject
$this->email->message($message);
$this->email->send();
Run Code Online (Sandbox Code Playgroud) 在 Symfony 4.3 中引入了一个新的电子邮件程序。
看这里:
对于 SMTP 传输,已确定 ENV 变量中的 DSN 具有以下格式:
MAILER_DSN=smtp://user:pass@smtp.example.com
Run Code Online (Sandbox Code Playgroud)
写DSN时如何处理用户名和密码中的特殊字符?
让我们假设凭据是:
username: alice@example.com
password: the:password:is:difficult
Run Code Online (Sandbox Code Playgroud)
像这样的设置很可能会失败:
MAILER_DSN=smtp://alice@example.com:the:password:is:difficult@smtp.example.com
Run Code Online (Sandbox Code Playgroud)
我应该如何编码/转义东西?什么是正确的 DSN?
在Joomla我使用以下代码发送邮件:
function sendmail($file,$mailto)
{
$mailer =& JFactory::getMailer();
//var_dump($mailer); exit;
$config =&JFactory::getConfig();
$sender = array(
$config->getValue( 'config.mailfrom' ),
$config->getValue( 'config.fromname' )
);
$mailer->setSender($sender);
$recipient = array($mailto);
$mailer->addRecipient($recipient);
$body = "Your body string\nin double quotes if you want to parse the \nnewlines etc";
$mailer->setSubject('Your subject string');
$mailer->setBody($body);
// Optional file attached
$mailer->addAttachment(JPATH_BASE.DS.'CSV'.DS.$file);
$send =&$mailer->Send();
if ( $send !== true ) {
echo 'Error sending email: ' . $send->message;
} else {
echo 'Mail sent';
}
}
Run Code Online (Sandbox Code Playgroud)
这是Joomla中的函数sendmail:带有$file
文件zip的路径,$mailto
是我的gmail.当我发送邮件时,我收到错误:
function …
Run Code Online (Sandbox Code Playgroud) 我有一个rails应用程序发送许多通知电子邮件.我们希望让用户选择纯文本和HTML.
最初我们的愿望总是多部分,所以我们没有设置内容类型,只是简单地使用了email.html.erb和email.text.erb视图,这两个视图都会被发送并创建一个多部分.
但是现在,当我们根据用户首选项指定content_type时,它确实将其自身设置为multipart或plain/text,但html模板作为纯文本包含在纯文本电子邮件的底部.
这是代码:
邮件行动:
def client_creation(client) # When client checks in for the first time
@client = client
content_type = client.company.html_emails ? nil : 'text/plain'
email_prefix = client.company.brand ? client.company.brand.email_subject_prefix : 'MonitoringClient'
mail(to: @client.company.administrative_reporting_address, subject: "[#{email_prefix}][Initial Check-in] #{@client.machine_name.html_safe} of #{@client.clientgroup.name}", content_type: content_type)
end
Run Code Online (Sandbox Code Playgroud)
上面的代码检查客户公司是否启用了html_emails,如果是,则将content_type设置为plain/text.其结果如下:
IRB输出:
#<Mail::Message:70269523266340, Multipart: false, Headers: <Date: Sun, 11 Nov 2012 09:09:43 -0600>, <From: notifications@monitoringclient.com>, <To: ommitted>, <Message-ID: <509fbfb7e0c4e_11e113fe8e4435b4084183@Jonathan.local.mail>>, <Subject: [Initial Check-in] Jonathan of hivemind labs>, <Mime-Version: 1.0>, <Content-Type: text/plain>, <Content-Transfer-Encoding: 7bit>>
Run Code Online (Sandbox Code Playgroud)
到目前为止,如此好的Multipart是false content_type是text/plain但是接下来是生成的电子邮件正文:
----==_mimepart_509fbfb7ddb8b_11e113fe8e4435b4083853
Date: …
Run Code Online (Sandbox Code Playgroud) 我试图在附件中附加多个图像.我使用forearch作为每个附件但是,当我使用foreach时它没有得到临时名称和名字,我可能做错了.以下是代码和错误:
输入HTML
<input id="upload-file" class="upload-file" type="file" name="upload-file[]">
var_dump $ _FILES ['upload-file']:
array(5) { ["name"]=> array(1) { [0]=> string(47) "WRANGLER_AW13_GIRLONTOP_A4_LANDSCAPE_300dpi.jpg" } ["type"]=> array(1) { [0]=> string(10) "image/jpeg" } ["tmp_name"]=> array(1) { [0]=> string(24) "C:\xampp\tmp\php41DC.tmp" } ["error"]=> array(1) { [0]=> int(0) } ["size"]=> array(1) { [0]=> int(91742) } }
Run Code Online (Sandbox Code Playgroud)
名称和temp_name的var_dump:
Notice: Undefined index: name in C:\xampp\htdocs\hmg\process-email.php on line 66
Notice: Undefined index: tmp_name in C:\xampp\htdocs\hmg\process-email.php on line 67
NULL
NULL
Run Code Online (Sandbox Code Playgroud)
码:
foreach($_FILES['upload-file'] as $file) {
$name = $file['name'];
$path = $file['tmp_name'];
var_dump($name); …
Run Code Online (Sandbox Code Playgroud) 上周我们已将应用程序升级到 Laravel 9,并注意到在生产中部署构建后立即出现了大量失败的作业。
这些错误都是与以下错误消息相关的电子邮件:
Expected response code "250" but got code "451", with message "451 4.4.2 Timeout waiting for data from client.".
Run Code Online (Sandbox Code Playgroud)
我们已经恢复到之前的版本(使用 SwiftMailer)并且错误停止了。需要澄清的是,我们已经运行该应用程序几周了,之前从未出现过该错误。
在“Staging”中我们没有这个问题。唯一的区别是我们对 live 和 set 中的队列使用 SQS :
APP_ENV=production
APP_DEBUG=false
Run Code Online (Sandbox Code Playgroud)
这是唯一的区别。
mailer ×10
php ×2
actionmailer ×1
amazon-sqs ×1
attachment ×1
codeigniter ×1
credentials ×1
devise ×1
html ×1
image ×1
joomla ×1
joomla2.5 ×1
laravel ×1
layout ×1
mime ×1
path ×1
plaintext ×1
rspec ×1
ruby ×1
sidekiq ×1
smtp ×1
symfony4 ×1
tdd ×1